Net :: HTTP :: Unauthorized - wie ich im WWW-Authenticate-Header bekommen?
-
25-09-2019 - |
Frage
Sie den Code unten ...
AngesichtsNet::HTTP.start('localhost', 4000) do |http|
#
# usual stuff omitted for clarity
#
@response = http.request(req)
end
... wenn ein (gut erzogene) Server gibt eine 401 (Unauthorized) Antwort, wie kann ich am bekommen WWW_Authenticate Header?
Die beste Lösung, die ich habe ist bei allen gut nicht ...
class Net::HTTPUnauthorized
def get_header(h)
_return = nil
target = h.upcase
self.header.each_header do |k, v|
if k.upcase == target
_return = v
break
end
end
_return
end
end
Chris
Lösung
Eine Möglichkeit wäre, verwenden halorgium der Rack-Client , die Net::HTTP
mit einem Rack hüllt Endpunkt. Sie würden dann interact mit dem Remote-Server, als ob es sich um ein Rack-Anwendung waren:
response = Rack::Client.get("http://localhost:4000/foo/bar.baz")
response.code
# => 401
response.headers['WWW-Authenticate']
# => 'Basic realm="Control Panel"'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow