当服务器/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()
似乎现在可以工作了。有更好的想法吗?这看起来可能是黑客攻击。