Ruby on rails 正在尝试连接到一个";摘要认证“;使用HTTParty或Net:HTTP(或etc)的web服务

Ruby on rails 正在尝试连接到一个";摘要认证“;使用HTTParty或Net:HTTP(或etc)的web服务,ruby-on-rails,web-services,basic-authentication,digest-authentication,httparty,Ruby On Rails,Web Services,Basic Authentication,Digest Authentication,Httparty,我一直在尝试连接到使用摘要身份验证的web服务 我可以使用以下用户在Safari中连接:password@service.site.com/端点 我曾尝试在Ruby和Rails中使用HTTParty和Net:HTTP连接,使用“basic”auth选项,但没有成功 想知道HTTParty/Net:HTTP“basic_auth”选项是否与“digest auth”服务不兼容 如果没有,还有其他连接方式吗?HTTParty basic auth显然与digest_auth不兼容。我找到了这个Net

我一直在尝试连接到使用摘要身份验证的web服务

我可以使用以下用户在Safari中连接:password@service.site.com/端点

我曾尝试在Ruby和Rails中使用HTTParty和Net:HTTP连接,使用“basic”auth选项,但没有成功

想知道HTTParty/Net:HTTP“basic_auth”选项是否与“digest auth”服务不兼容


如果没有,还有其他连接方式吗?

HTTParty basic auth显然与digest_auth不兼容。我找到了这个Net:HTTP扩展名:并正在编写一个方法来处理这个问题,借助Crack gem:


今天无法访问上面给出的codesnippets链接,但此处也提供了代码。我已成功地将其用于摘要身份验证,但遇到了多个请求的问题,出现了“Stale client nonce”错误-通过每次调用摘要\u auth函数时在其内生成一个新的nonce来解决。在上没有找到太多信息当我看的时候,希望这能帮助一些人。

一个代码示例非常有用。我直接从HttpParty示例开始工作:wget“”不工作:HttpParty-u用户:密码“”
 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