lindig
October 6, 2019, 11:57am
1
I’m looking for a library that helps decoding application/x-www-form-urlencoded
data as it is received by a web server. I assumed that it would be provided by a package like cohttp
but could not find it at first glance. Maybe this is known under a different name. It is not difficult to write a decoder but I would simply prefer a battle-hardened one.
token=gIkuvaNzQIHg97ATvDxqgjtO
&team_id=T0001
&team_domain=example
&enterprise_id=E0001
&enterprise_name=Globular%20Construct%20Inc
&channel_id=C2147483705
&channel_name=test
&user_id=U2147483697
&user_name=Steve
&command=/weather
&text=94070
&response_url=https://hooks.slack.com/commands/1234/5678
&trigger_id=13345224609.738474920.8088930838d88f008e0
1 Like
lindig
October 6, 2019, 12:08pm
3
The signature for Uri.pct_decode
suggests it doesn’t decode forms because the result should be an association. Maybe this?
Uri.query_of_encoded : string -> (string * string list) list
utop # Uri.query_of_encoded req;;
- : (string * string list) list =
[("token", ["gIkuvaNzQIHg97ATvDxqgjtO"]); ("team_id", ["T0001"]);
("team_domain", ["example"]); ("enterprise_id", ["E0001"]);
("enterprise_name", ["Globular Construct Inc"]);
("channel_id", ["C2147483705"]); ("channel_name", ["test"]);
("user_id", ["U2147483697"]); ("user_name", ["Steve"]);
("command", ["/weather"]); ("text", ["94070"]);
("response_url", ["https://hooks.slack.com/commands/1234/5678"]);
("trigger_id", ["13345224609.738474920.8088930838d88f008e0"])]
The name query_of_encoded
is unfortunate in that it doesn’t conveys that it is decoding something.
2 Likes
Khady
October 7, 2019, 1:28pm
4
https://github.com/ahrefs/atd/pull/194
You might be interested by this. Sorry can’t check that it gives exactly the good leads right now.
1 Like