문제

Digest 인증을 사용하는 웹 서비스에 연결하려고 노력했습니다.

user : password@service.site.com/endpoint를 사용하여 Safari로 연결할 수 있습니다.

나는 루비와 레일에서 httparty and net : http를 사용하여 "기본"인증 "옵션을 사용하여 연결하려고 시도했지만 운이 없었습니다.

HTTPARTY/NET : HTTP "BASIC_AUTH"옵션이 "Digest Auth"서비스와 호환되지 않을지 궁금하십니까?

그렇지 않다면 연결할 수있는 또 다른 방법이 있습니까?

도움이 되었습니까?

해결책

httparty 기본 인증은 Digest_auth와 호환되지 않습니다. 이 그물을 찾았습니다 : HTTP 확장 : https://codesnippets.joyent.com/posts/show/1075 그리고 균열 보석의 도움으로 이것을 처리하는 방법을 작성하고 있습니다. http://github.com/jnunemaker/crack:

 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 인증에 성공적으로 사용했지만 여러 요청에 문제가 발생하여 'Stale Client Nonce'오류를 얻었습니다. 내가 보았을 때 그에 대해 많이 찾지 못했기 때문에 이것이 누군가를 도울 수 있기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top