鉴于以下代码......
Net::HTTP.start('localhost', 4000) do |http|
#
# usual stuff omitted for clarity
#
@response = http.request(req)
end
...如果(表现良好的)服务器返回401(未授权)响应,我如何获得WWW_Authenticate标题?
我得到的最佳解决方案并不是很好......
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
克里斯
答案 0 :(得分:2)
一种选择是使用halorgium's Rack-Client,它将Net::HTTP
与Rack端点包装在一起。然后,您将与远程服务器进行交互,就像它是Rack应用程序一样:
response = Rack::Client.get("http://localhost:4000/foo/bar.baz")
response.code
# => 401
response.headers['WWW-Authenticate']
# => 'Basic realm="Control Panel"'