groovy httpbuilder工作,但grails给同行没有经过身份验证的错误

时间:2014-06-24 00:44:23

标签: grails ssl groovy

拥有我正在使用的网络服务。

在Groovy中:

def http = new HTTPBuilder( "https://${ip}/convert/" )
http.get( path: 'myTool',
            query: [  name:'myname' ] ) { resp, name ->
    String name = name.toString()
}

哪个可以正常

然而,在grails中运行类似的东西:

class NamingService {

def convertName(String _name) {

    String ip = "server/ip/end/address"
    String convertedName = null
    def http = new HTTPBuilder( "$ip/convert/" )
    try {
        http.get( path: "myTool",
                query: [ name:'myname' ] ) { resp, name ->
            convertedName = name
        }
    } catch (Exception e) {
        println(e.message)
    }
    finally {
        return convertedName
    }
  }
}

Grails版本给出:javax.net.ssl.SSLPeerUnverifiedException:peer not authenticated

为什么grails版本给出了这个但groovy版本没有?该项目主要是股票(没有添加自定义ssl证书或任何东西)。

1 个答案:

答案 0 :(得分:0)

在纯Groovy示例中,您似乎明确地访问了HTTPS端点:

def http = new HTTPBuilder( "https://${ip}/convert/" )

虽然在Grails示例中您没有指定HTTPS:

def http = new HTTPBuilder( "$ip/convert/" )
try {
    http.get( path: "myTool",
            query: [ name:'myname' ] ) { resp, name ->
        convertedName = name
    }...

我会尝试修改Grails摘录的第一行以指定HTTPS协议。在不知道端点的情况下我无法验证。