0

以下のコードを考えると...

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

クリス

4

1 に答える 1

2

1つのオプションは、HalorgiumのRack-ClientNet::HTTPを使用することです。これは、Rackエンドポイントでラップします。次に、Rackアプリケーションであるかのようにリモートサーバーと対話します。

response = Rack::Client.get("http://localhost:4000/foo/bar.baz")
response.code
# => 401
response.headers['WWW-Authenticate']
# => 'Basic realm="Control Panel"'
于 2010-04-08T12:14:46.747 に答える