如何通过HTTPoison将代理api令牌设置为hackney上的auth?

时间:2017-10-23 21:37:02

标签: proxy erlang elixir httpoison

我在使用HTTPoison对Crawlera服务进行身份验证时遇到问题。

crawlera的API文档说我只需要API令牌。

即。 curl -vx proxy.crawlera.com:8010 -U <API key>: http://httpbin.org/ip

因此,我在HTTPoison设置上设置身份验证选项时遇到问题。

我尝试了这3个选项:

HTTPoison.get("url", header, hackney: [:insecure], proxy: 'proxy.crawlera.com:8010', proxy_auth: 'api-token') 错误 - &gt; (FunctionClauseError) no function clause matching in :hackney.do_connect/7

HTTPoison.get("url", header, hackney: [:insecure], proxy: 'proxy.crawlera.com:8010', proxy_auth: {'api-token',''}) 错误 - &gt; (ArgumentError) argument error :erlang.bit_size([])

HTTPoison.get("url", header, hackney: [:insecure], proxy: 'api-token:@proxy.crawlera.com:8010') 错误 - &gt; {"X-Crawlera-Error", "bad_proxy_auth"}

如果有人知道如何正确设置参数我会很感激帮助。

1 个答案:

答案 0 :(得分:2)

  1. proxy参数应该是主机和端口的元组。
  2. 您需要为主机和proxy_auth的两个元素使用二进制文件而不是字符列表。
  3. 以下内容应该有效:

    proxy: {"proxy.crawlera.com", 8010}, proxy_auth: {"api-token", ""}