0

当服务器/api端点没有给出正确的响应时,看起来HTTPBuilder的行为出错了。Mailgun 的 API 不响应 401,而是提供其他内容。(如我错了请纠正我!)

事实上,没有发送“需要身份验证”标头,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 回答