我可以使用 curl 在命令行中轻松完成:
curl --digest -u "user:password" [url]
但我正在尝试使用 Ruby 的 Net::HTTP。尝试使用 Net::HTTP 获取 API 时,有没有办法可以提供我的用户名和密码?
我尝试了 basic_auth 方法,但它不起作用。
这是我的代码片段
基本认证
uri = URI("https://www.commcarehq.org/a/chanderi/api/v0.4/form/?xmlns=http://openrosa.org/formdesigner/C3B60561-F631-4D4C-8611-10E975EF8B44")
res = Net::HTTP.start(uri.hostname, uri.port) {|http|
req = Net::HTTP::Get.new(uri)
req.basic_auth 'myusername', 'mypassword'
http.request(req)
}
puts res.body
对于 net::http::digestauth
digest_auth = Net::HTTP::DigestAuth.new
uri = URI.parse 'http://localhost:8000/'
uri.user = CGI.escape('username@mail.com')
uri.password = 'password'
h = Net::HTTP.new uri.host, uri.port
req = Net::HTTP::Get.new uri.request_uri
res = h.request req
Net::HTTPBadResponse:错误的状态行:“”
我正在关注http://docs.seattlerb.org/net-http-digest_auth/Net/HTTP/DigestAuth.html