【发布时间】:2015-05-16 05:43:57
【问题描述】:
(编辑:我使用HTTPoison's get! 功能清除了这个问题。
HTTPoison.start
HTTPoison.get!("httpbin.org/get", [], [{:proxy, {"proxy.mydomain.com", 8080}}])
我是使用长生不老药的新手。作为第一步,我尝试了httpotion 上的示例应用程序。
iex> 响应 = HTTPotion.get "httpbin.org/get"
但是,它无法访问代理后面的站点。
iex(1)> res = HTTPotion.get "httpbin.org/get"
** (HTTPotion.HTTPError) nxdomain
(httpotion) lib/httpotion.ex:195: HTTPotion.handle_response/1
没有代理,就这样成功了;
iex(1)> res = HTTPotion.get "httpbin.org/get"
%HTTPotion.Response{body: "{\n \"args\": {}, \n \"headers\": {\n \"Content-Length\": \"0\", \n \"Host\": \"httpbin.org\"\n }, \n \"origin\": \"191.238.84.51\", \n \"url\": \"http://httpbin.org/get\"\n}\n",
headers: ["Access-Control-Allow-Credentials": "true",...
我尝试通过读取httpotion所依赖的ibrowse来设置代理参数,比如;
req = HTTPotion.get("httpbin.org/get", [{:proxy_host, "proxy.mydomain.com"}, {:proxy_port, 8080}])
但结果是一样的。
如何设置 httpotion 的代理参数?或者在 elixir 上是否有任何可以处理代理的 HTTP 访问替代库?
我的环境是 Ubuntu 14.04.2,环境变量(http_proxy、https_proxy、HTTP_PROXY 和 HTTPS_PROXY)设置正确。
【问题讨论】:
-
如果你在这里得不到答案,可以在 HTTPoison 项目中询问:github.com/edgurgel/httpoison
-
谢谢,何塞。我会在项目现场提问。我刚开始学习长生不老药,仍然对“原子开始于:”之类的新语法感到困惑。
-
@HirofumiTamori 如果您设法通过 httpoison 的问题跟踪器找到解决方案,请记得发布您的问题的答案 :)。
-
@whatyouhide 谢谢,我在 José 的通知下找到了 HTTPoison,并通过它的文档得到了使用。如果我下次使用问题跟踪器,我会小心的。