【发布时间】:2015-10-04 21:09:56
【问题描述】:
我正在尝试发布到 API。 API 获取文件并将其转换为 JSON
这是我正在做的事情:
consumer = OAuth::Consumer.new(consumer_key,secret, :site => uri)
accesstoken = OAuth::AccessToken.new(consumer, core_access_token, core_access_secret)
params = {:body => {
:binaryData => data,
:extension => "txt",
:locale => 'en_gb',
:instanceType => 'xray',
:fieldList => {"field" => ["All"]}
}.to_json,
:headers => {
'Accept' => 'application/json',
'Content-Type' => 'application/json' ,
}
}
result = accesstoken.post(action, params)
我得到了回复:
<Net::HTTPBadRequest 400 Bad Request readbody=true>
这个错误是什么意思?错误的 URI?错误的访问令牌?或 OAUTH Gem 使用不正确(即我的代码错误)
【问题讨论】:
-
你为什么要在那里调用 to_json?只需传递一个哈希就足够了
-
好的,但是。删除 to_json 不会改变响应。
-
你能提供一个实际的HTTP请求吗?来自网络跟踪、服务器日志还是客户端日志?
-
没有任何客户端日志记录,因为它没有从浏览器发布,API 服务器日志对我不可用,并且 rails 没有记录任何网络跟踪类型的东西。不知道还能去哪里看?
-
400 错误通常意味着您的请求格式错误。很可能它甚至没有到达服务器上的 OAuth 逻辑。尝试将您的参数设置为: { 'Accept' => 'application/json', 'Content-Type' => 'application/json' , }
标签: ruby-on-rails ruby api oauth