【发布时间】:2018-11-15 12:34:23
【问题描述】:
查看文档,没有任何关于如何发出 POST 请求的好例子。我需要使用 auth_token 参数发出 POST 请求并得到回复:
response = RestClient::Request.execute(method: :post,
url: 'http://api.example.com/starthere',
payload: '{"auth_token" : "my_token"}',
headers: {"Content-Type" => "text/plain"}
)
400 错误请求错误:
RestClient::BadRequest: 400 Bad Request
from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rest-client-1.8.0/lib/restclient/abstract_response.rb:74:in `return!'
from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rest-client-1.8.0/lib/restclient/request.rb:495:in `process_result'
from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rest-client-1.8.0/lib/me/request.rb:421:in `block in transmit'
有什么好的例子如何使用 RestClient 发出 POST 请求?
编辑:
这是我在模型中提出请求的方式:
def start
response = RestClient::Request.execute(method: :post,
url: 'http://api.example.com/starthere',
payload: '{"auth_token" : "my_token"}',
headers: {"Content-Type" => "text/plain"}
)
puts response
end
【问题讨论】:
-
你确定你的请求是
text/plain请求吗? -
@Pavan curl 有效,所以我猜它是对的? 'curl "api.example.com/starthere" -d "auth_token=my_token"'
-
您如何处理控制器的请求?能发下相关代码吗?
-
@Pavan 我只是将它打印到控制台以查看现在的响应
-
尝试将
{"Content-Type" => "text/plain"}更改为{"Content-Type" => "text/html"}