如何查看HTTPoison的原始请求

时间:2015-07-01 11:10:16

标签: elixir

我正在尝试使用HTTPoison提交此表单

https://gist.github.com/shankardevy/6728d63eb528b3cb223a

使用以下代码:

HTTPoison.post!(url,{:multipart, [{"username", "user"}, {"password", "pass"}]})

但是,生成的页面会显示“无效身份验证”。但是,当我尝试使用浏览器使用相同的凭据登录时,它可以正常工作。

所以我想知道我是否可以通过HTTPoison查看原始http请求,以便我可以将其与来自浏览器的原始请求进行比较。

2 个答案:

答案 0 :(得分:10)

如果您只想查看请求,请访问http://httpbin.org怎么样?它回应了所要求的信息。

iex(1)> IO.puts HTTPoison.post!("http://httpbin.org/post",{:multipart, [{"username", "user"}, {"password", "pass"}]}).body

HTTPoison使用hackney作为后端,我在下面使用hackney进行文件上传示例(虽然它与您的示例有些不同,但我发布它以供参考,因为我以前努力寻找关于multipart的例子)。

https://github.com/parroty/excoveralls/blob/master/lib/excoveralls/poster.ex

是否有任何特殊原因可以使用multipart来发送用户/密码参数?

答案 1 :(得分:2)

您可以使用精彩的ngrok工具为您的请求创建代理,例如

$ ngrok example.com 8080

将吐出像http://abcd1234.ngrok.com这样的URL,代理发送给example.com端口8080的任何请求。然后,您可以在{{3}的ngrok网络监控UI中检查原始请求}。毋庸置疑,您将把所有数据发送给第三方,因此请不要提交任何您不想泄露的用户名和密码。