0

サーバー/API エンドポイントが適切な応答を返さない場合、HTTPBuilder の動作がおかしくなるようです。Mailgun の API は 401 に応答せず、代わりに別の応答を返します。(間違っていたら訂正してください!)

「Authentication required」ヘッダーが送信されないという事実により、HTTPBuilder は認証を試みさえしません。

このスレッドの助けを借りて問題を解決したと思います: http://groovy.329449.n5.nabble.com/HTTPBuilder-Strange-behaviour-of-auth-basic-td344479.html

彼らは、認証ヘッダーを手動で書き込むと、毎回認証が強制されることを示唆しています。これを少し変更する必要があるため、次のようになります。

def user = 'tom' 
def pass = 'secret' 

def http = new HTTPBuilder('http://myhost.com') 
http.headers[ 'Authorization' ] = "Basic " + "$user:$pass".getBytes('iso-8859-1').encodeBase64() 

今はうまくいくようです。より良いアイデアはありますか?これはハックのように見え、おそらくハックです。

4

1 に答える 1

0

次のようなものを使用してみてください。

def authSite = new HTTPBuilder( 'https://some-protected-site.com/' )
authSite.auth.basic 'myUserName', 'myPassword'

詳しくはhttp://groovy.codehaus.org/modules/http-builder/doc/auth.htmlをご覧ください。

于 2013-10-16T19:42:25.147 に答える