【问题标题】:Follow the end Url in Erlang按照 Erlang 中的结束 URL
【发布时间】:2012-10-01 20:57:51
【问题描述】:

我正在尝试跟踪 RSS 中的 URL 以找到最终 URL! 例如,我有这个 URL “http://coder.io/~a27983554a”,遵循这个结果将是“http://ferd.ca/code-janitor-nobody-s-dream-everyone-s- job-and-how-erlang-can-help.html"

结束 URL 保存在第一个 URL 的标头中,但问题是我需要向该 URL 发送请求以获得包含最终结果的响应!

我正在使用这个命令

{ok, {{Version, 200, ReasonPhrase}, Headers, Body}} = httpc:request("http://coder.io/~a27983554a")

但这只是给我文件的标题,但网站的响应包含我的结果

请帮帮我 我是 Erlang 的新手,如果你能提供简单的代码行,那就完美了

提前致谢

【问题讨论】:

  • “最终结果”(HTML 格式)已经绑定到您的“Body”变量。使用io:format("~s", [Body]). 打印以验证。
  • Body 不包含重定向链接,有没有办法获取响应头?

标签: erlang


【解决方案1】:

执行请求时需要禁用autoredirect

Method = get,
Url = "http://coder.io/~a27983554a",
HTTPOptions = [{autoredirect, false}],
{ok, {{_Version, 302, _StatusMsg}, Headers, Body}} =
    httpc:request(Method, {Url, []}, HTTPOptions, []),
Location = proplists:get_value("location", Headers).

【讨论】:

  • 谢谢你帮了大忙!是否有任何地方可以看到可用的不同选项?因为我正在阅读官方文档,并没有太多详细信息。再次感谢
猜你喜欢
  • 2017-03-26
  • 2015-01-29
  • 2015-01-27
  • 1970-01-01
  • 1970-01-01
  • 2014-02-17
  • 1970-01-01
  • 2013-02-01
  • 2018-04-24
相关资源
最近更新 更多