我一直在试图连接到使用摘要身份验证的Web服务。

我能够使用Safari中连接用户:password@service.site.com/endpoint

我曾尝试在Ruby和Rails使用HTTParty和网络连接:使用“基本”身份验证”选项HTTP,但还没有任何运气

想知道如果HTTParty /网:HTTP“basic_auth”选项不会成为与“消化AUTH”服务兼容?

如果没有,有没有,我可能连另一种方式?

有帮助吗?

解决方案

HTTParty基本认证显然不是与digest_auth兼容。我发现这个网:HTTP扩展: https://codesnippets.joyent.com/posts/show/ 1075 和我写的方法来处理这个问题,随着裂纹的宝石的帮助的http:// github上的.com / jnunemaker /裂纹

 def self.decode vin
    url = URI.parse(APP_CONFIG[:vinlink_url])
    Net::HTTP.start(url.host) do |http|
      res = http.head(url.request_uri)
      req = Net::HTTP::Get.new("/report?type=basic&vin=#{vin}")
      req.digest_auth(APP_CONFIG[:vinlink_login], APP_CONFIG[:vinlink_password], res)
      @response = http.request(req)
    end
    if @response.code == "200"
      hash = Crack::XML.parse(@response.body).recursive_downcase_keys!.recursive_symbolize_keys!
    end
  end  

其他提示

无法获取到codesnippets今天上面的链接给出,但是代码也可以在这里 https://开头gist.github.com/73102 。我已经成功地为摘要式身份验证使用这一点,但遇到了与多个请求的问题,让“过时客户端随机数”的错误 - 由digest_auth函数内生成一个新的随机数每次被称为时间分辨。没有找到太多的,当我看着,所以希望这可以帮助别人。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top