如何通过 HTTPoison 将代理 api 令牌设置为 hackney 上的身份验证?

How to set a proxy api token as auth on hackney through HTTPoison?

我在使用 HTTPoison 对 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') 错误 -> (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',''}) 错误 -> (ArgumentError) argument error :erlang.bit_size([])

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

如果有人知道如何正确设置参数,我将不胜感激。

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

以下应该有效:

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