Mailgun,Groovy HTTPBuilder和HTTP基本身份验证问题

时间:2013-01-22 09:38:41

标签: grails groovy http-basic-authentication httpbuilder mailgun

当服务器/ 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() 

现在似乎工作了。有更好的想法吗?这看起来像也许是一个黑客。

1 个答案:

答案 0 :(得分: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