我正在使用httpc:request
将一些数据发布到远程服务。我正在处理该帖子,但是该帖子的body()中的数据是按原样通过的,没有任何URL编码,这导致该帖子在通过远程服务进行解析时失败。
为此,Erlang中是否有一个函数类似于Ruby中的httpc:request
?
您可以在这里找到CGI.escape
我也遇到了HTTP模块中缺少此功能的问题。
至少在R15中有> CGI.escape("[email protected]")
=> "luca%2Bmore%40here.com"
> URI.escape("[email protected]")
=> "[email protected]"
来完成这项工作。我也不建议使用edoc_lib:escape_uri,因为它会将'='转换为%3d而不是%3D,这给我带来了麻烦。
这是完成任务的简单函数。它旨在直接与inets httpc一起使用。
回答我自己的问题...我在ibrowse中找到了这个库!
如果有人需要在erlang中编码与utf-8兼容的uri:
这里是https://gist.github.com/3796470函数的一个“分支”,它在UTF-8支持上有所改进,还支持二进制文件。
AFAIK,标准库中没有URL编码器。认为我从YAWS或其他Erlang Web服务器之一“借用了”以下代码: