【发布时间】:2018-01-29 06:33:34
【问题描述】:
我可以使用不记名令牌访问 API,并且我在 INSOMNIA / Postman 工具中获得了具有以下值的响应:
{
"access_token": "ki1AH9hiF8_OTGr70VnOnb-I7ZRWVI3u6pXxWHW6hStckd3WC3NLviN0Z036dvBVfEQFWO691t-9roX-p1w6gou1TlWAqEwX3mmLwcZ4VcwrS5YWY8GLSxjBCSMdcn5RLBPfh5jubNX8_vrrX3D3bTbsGnxE1jeWf_T-lnUGEkWz876o3kbonIFWwJMO8-athkcfb3kPoqOrD1w2CRyeDADFvYuPiTpbiG75a9s1V-qdgTGdYaP8-FRnm0G0zhKt8lQo2W8pBBa4dMv-5jQSEA",
"token_type": "bearer",
"expires_in": 14399
}
但是当我试图从 ruby 脚本中得到相同的东西时,我只得到如下 200OK 的响应代码:
[1] pry(main)> response = http.request(request)
=> #<Net::HTTPOK 200 OK readbody=true>
我已经编写了以下 rake 任务以在对发布请求的响应中获取访问令牌:
require "net/http"
require "uri"
desc "post request and get response"
task :post_request_and_get_response => :environment do
uri = URI.parse("my_url")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(uri.request_uri)
request["Authorization"] = 'Bearer token'
request["Content-Type"] = 'application/x-www-form-urlencoded'
request.set_form_data({"grant_type" => "password", "username" => "user", "password" => "my_password"})
p response = http.request(request)
end
请帮助我获取 access_token 以响应我在 Postman 或 Insomnia 工具中看到的发帖请求。
通过 rake 任务,我只得到 200OK 状态码。
在response.body 我只得到以下值而不是 access_token
[12] pry(main)> response.body
=> "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\"><head><META HTTP-EQUIV=\"CONTENT-TYPE\" CONTENT=\"TEXT/HTML; CHARSET=utf-8\"/><title>Error</title></head><body><H2>Error</H2><table summary=\"Error\" border=\"0\" bgcolor=\"#FEEE7A\" cellpadding=\"0\" cellspacing=\"0\" width=\"400\"><tr><td><table summary=\"Error\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\"><tr valign=\"top\" bgcolor=\"#FBFFDF\" align=\"left\"><td><STRONG>Error</STRONG></td></tr><tr valign=\"top\" bgcolor=\"#FFFFFF\"><td>This page can't be displayed. Contact support for additional information.<br/>The incident ID is: N/A.</td></tr></table></td></tr></table></body></html>"
提前致谢。
【问题讨论】:
-
为什么我在 Insomnia/postman 工具中得到响应值而没有完成我的 rake 任务。我需要改变什么吗?请帮帮我。
-
此问题与您标记的不重复。我的情况不同@Зелёный
标签: ruby-on-rails ruby http-post bearer-token net-http