我在使用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"}
如果有人知道如何正确设置参数我会很感激帮助。
答案 0 :(得分:2)
proxy
参数应该是主机和端口的元组。proxy_auth
的两个元素使用二进制文件而不是字符列表。以下内容应该有效:
proxy: {"proxy.crawlera.com", 8010}, proxy_auth: {"api-token", ""}