- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 Faraday 将路由 A(Sinatra 应用程序)中生成的小有效载荷放入路由 B。所以代码基本上是这样的:
post "/routeA" do
foo.save
foo_id = foo.id
conn = Faraday.new(:url => "http://localhost:3001/routeB" ) do |builder|
builder.request :url_encoded
builder.response :logger
builder.adapter :net_http
end
resp = conn.put do |req|
req.url '/routeB'
req.headers['Content-Type'] = 'application/json'
req.body = {:id => foo_id }.to_json
req.options = {
#:timeout => 5, # see below, these aren't the problem
#:open_timeout => 2
}
end
# never gets here b/c Timeout error always thrown
STDERR.puts resp.body
end
put "/routeB" do
# for test purposes just log output
STDERR.puts request.body.read.to_s.inspect
status 202
body '{"Ok"}'
end
问题是它总是抛出超时错误(我在没有超时选项的情况下运行,但使用上面显示的选项 -> 相同的结果)。但是,日志显示请求正在通过:
I, [2012-03-24T16:56:13.241329 #17673] INFO -- : put http://localhost:3001/routeB
D, [2012-03-24T16:56:13.241427 #17673] DEBUG -- request: Content-Type: "application/json"
#<Faraday::Error::TimeoutError>
DEBUG - POST (60.7987ms) /routeA - 500 Internal Server Error
"{\"id\":7}"
DEBUG - PUT (0.0117ms) /routeB - 202 Accepted
不确定如何克服超时错误?任何见解将不胜感激。谢谢。
最佳答案
问题是应用程序在完成当前请求之前无法响应另一个请求。也就是说,当您在 /routeB
上发出 PUT 请求时,应用程序会收到请求,并等待当前请求 (/routeA
) 完成。但是请求不会完成,因为它正在等待 /routeB
的响应。我认为这是导致超时错误的原因。
关于ruby - 法拉第 (Ruby) 超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9856208/
我正在尝试使用 Faraday 将路由 A(Sinatra 应用程序)中生成的小有效载荷放入路由 B。所以代码基本上是这样的: post "/routeA" do foo.save foo_i
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在尝试为我的 Rails 应用程序的用户设置 OAuth 到 GetPocket ( http://getpocket.com )。 在 Pocket Authentication 文档 ( ht
我想使用 Faraday 发送一个带有 JSON 正文(用于搜索)的获取请求,但我收到了上述错误。我认为 Proc 中的 self 把事情搞砸了,但这与它无关。我正在关注 [faraday githu
我想向 API 发送 POST 请求。这是我的代码: conn = Faraday.new(url: BASE) do |faraday| faraday.response :logger f
作为我正在尝试编写的 Recipe (新手)的一部分,我使用 berks 安装来自其他 Recipe 的依赖项,最终当我运行时 berks install ,我遇到证书验证错误。任何人都可以帮助我知道
我将一个旧脚本迁移到一个新的 CentOS box 并在运行脚本时收到以下消息: Faraday: you may want to install system_timer for reliable
我正在尝试将一些代码从 HTTPParty 转换为 Faraday。以前我用的是: HTTParty.post("http://localhost/widgets.json", body: { nam
我是一名优秀的程序员,十分优秀!