问题标签 [httpoison]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
elixir - %HTTPoison.Error{id:无,原因::关闭}
我们在我们的代码库中使用 HTTPoison 来发布和获取请求,同时使用 hackney 池。在这里发帖只是因为我想从所有专家那里得到一些意见。
我们正在使用很多摄像头,我们从每个摄像头获取图像,然后将所有这些图像保存到seaweedFS服务器。
我们在每秒范围内发出近千个请求。在 seaweedFS 端,我们以 10 秒的超时时间启动了服务器。在我们的代码库方面,为了上传图片,我们使用了这个 hackney 配置。
在过去的几天里,我们在这方面遇到了问题。起初,我们这边的 timeout 和 max_connections 是 10 秒和 5K。我们开始收到这些 HTTPoison 错误
错误计数如此之高,几乎达到 12K 等等,所以暂时,在 Elixir Slack 频道讨论它之后,我将超时和 max_connections 更改为上述设置。在此之后,错误从 12K 减少到 3K,但仅持续了 2 或 3 天,之后错误计数再次变为 12K,依此类推。
开发 SeaweedFS 的人指出,我们用来发送 HTTP 请求的库没有关闭连接,而在我们的 seaweedFS 服务器端(我们的代码库向其发送读写请求的服务器)这个命令的结果是
谁能给我一些建议?这个错误的原因可能是什么?
我对 Elixir Slack Channel 和我所知道的关于 hackney 池的讨论很少为此请求发出的将保持打开状态另外 2 秒(完成 5 秒),以便其他 http post 请求可以使用仍然打开的连接?也许我在这个理论中是错误的。
但是,如果有人能指出我使用 hackney 池的一些更好的解决方案,那就太好了。
我们使用的是 HTTPoison 0.11.1,最终使用的是 hackney 1.7.1。
elixir - 使用 HTTPoison 的 HTTP 1.0 请求
如何使用 HTTPoison 发出 HTTP/1.0 请求?我不知道它使用的是哪个版本,但我假设它默认不是 1.0。
我正在与一些名为 MoneyWorks 的会计软件集成,他们建议尽可能使用 HTTP/1.0 以避免 2 秒超时延迟。
我在 HTTPoison 文档中没有看到任何关于此的内容,所以我去了 Hackney 文档,因为它是基于此构建的。那里也没有看到任何东西。
rest - 如何将 curl 翻译成 elixir httpoison
我有一个来自 api 的 curl 命令示例:
我不知道如何将其转换为 Elixir 的 HTTPoison。我已经尝试了几个小时。我什至不能开始提及我经历过的所有迭代,但这就是我现在所处的位置:
与我之前尝试过的大多数事情不同,它实际上到达了他们的服务器并给出了响应:
你能帮我吗?我尝试将数据放在正文部分而不是标题中,但没有运气。
rest - 使用 Elixir 和 HTTPoison 访问 Azure 存储服务 REST API
我正在尝试使用 Elixir通过他们的 REST API 访问 Azure 存储服务,但我很难让Authentication Header工作。如果我使用ex_azure包(erlazure的包装器),我可以连接,但当我尝试构建请求并使用HTTPoison时不能连接。
最近的错误消息
第一次编辑后
依赖项
代码
- 我是否正在格式化身份验证标头 (
string_to_sign
) 对吗? - 我使用编码/解码对吗?
- 我是否将标头正确添加到 HTTPoison?
- 我应该为 REST 操作使用其他东西而不是 HTTPoison 吗?
笔记
我使用/尝试过的一些资源...
utf-8 - httpoison - 显示乱码文本而不是 html 的响应正文
如果我尝试:
我在控制台中看到乱码文本(而不是 html)。但是如果我在网页上查看源代码,我会在那里看到 html。我究竟做错了什么?
PS:它适用于 js http 客户端(axios.js),不知道为什么它不适用于 httpoison
elixir - HTTPoison Multipart Post 请求 Spree API
尝试使用 HTTPoison 将图像发布到 Spree 的ProductImage API时,失败并出现 Rails 错误NoMethodError (undefined method 'permit' for #<ActionDispatch::Http::UploadedFile:0x007f94fa150040>)
。我用来生成这个请求的 Elixir 代码是:
我可以通过以下调用使用 Curl 使其工作:
为了比较,这里是一个 RequestBin 捕获失败的 HTTPoison 请求和成功的 Curl 请求: https ://requestb.in/12et7bp1?inspect
为了让 HTTPoison 能很好地使用这个 Rails API,我需要做什么?
proxy - 如何通过 HTTPoison 将代理 api 令牌设置为 hackney 上的身份验证?
我在使用 HTTPoison 对 Crawlera 服务进行身份验证时遇到问题。
crawlera 的 API 文档说我只需要 API 令牌。
IEcurl -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"}
如果有人知道如何正确设置参数,我将不胜感激。
curl - Phoenix/Elixir - cURL 有效,但 HTTPoison 失败
在我的 Phoenix 应用程序中,我正在尝试使用 HTTPoison HTTP 客户端 ( https://hexdocs.pm/httpoison/api-reference.html ) 向 AgileCRM API 发出发布请求。我能够使用 cURL 发出成功的请求,但我在 Phoenix 中复制它的尝试失败并出现 401UNAUTHORIZED
错误。
我成功的卷曲:
它返回状态200
和请求的数据。
我失败的 HTTPoison:
返回
从消息中,我假设(可能不正确)问题出在授权数据上。我的理解是-u
cURL 中的标志相当于添加Authorization
标题,但也许不是?
HTTPoison 还允许一个options
参数,其中一个选项(哈哈!)是“:proxy_auth - 代理身份验证 {User, Password} 元组”,但传递[proxy_auth: {"admin@test.com", "api_key"}]
会产生相同的结果。
对此的任何想法将不胜感激
elixir - Elixir 中的 HTTPoison.get() 错误
我有以下网址
https://www.michaelkors.com/four-in-one-logo-belt-box-set/_/R-US_39F6LBLY4B?color=0200
并且需要通过HTTPoison.get获取页面正文。以下方法给出超时错误
对于其他 URL,它可以工作,似乎是由于 URL 中的特定模式引起的错误
elixir - 可以使用 HTTPoison 为 localhost 指定端口吗?
我正在做一个测试,在这个测试中我需要点击我在本地运行的服务。该服务是一个公开了 JSON api 的 rails 应用程序。它在端口 3000 上运行。当我执行这个 elixir 代码时,我得到一个错误:
我得到的错误是:
{:error, %HTTPoison.Error{id: nil, reason: :econnrefused}}
我应该注意,当我执行该代码时,服务日志中没有找到输出。
我的问题是可以指定端口吗?如果可以的话,我是否通过简单地将其构建到 url 中正确地做到了这一点?
我想接下来的问题是我可能会得到这个 :econnrefused 错误的原因是什么?
我什至不确定我在问正确的问题:P
谢谢