如何防止 groovy RESTClient 对包含 %2F 代码的路径进行 url 编码?

Chr*_*now 4 groovy couchdb cloudant

我有一些 groovy 代码可以向服务器发出 GET 请求:

import groovyx.net.http.RESTClient
import static groovyx.net.http.ContentType.*

import groovyx.net.http.HTTPBuilder

def server = new RESTClient( 'https://myaccount.cloudant.com'  )

// the id contains a forward slash, i.e. xxxx/yyyy

response = server.get (path: 'aaaa/xxxx%2Fyyyy', 
         contentType: JSON, requestContentType: JSON)
Run Code Online (Sandbox Code Playgroud)

但是,以下内容正在发送到服务器:

"GET /aaaa/xxxx%252Fyyyy HTTP/1.1"
Run Code Online (Sandbox Code Playgroud)

什么时候应该是这样:

"GET /aaaa/xxxx%2Fyyyy HTTP/1.1"
Run Code Online (Sandbox Code Playgroud)

似乎 groovy 正在对路径进行编码 - 我该如何防止这种情况?

Chr*_*now 5

这对我有用:

import groovyx.net.http.RESTClient
import static groovyx.net.http.ContentType.*
import groovyx.net.http.URIBuilder
import groovyx.net.http.HTTPBuilder

def server = new RESTClient( 'https://myaccount.cloudant.com' )

def uri = new URIBuilder(
    new URI( server.uri.toString() + '/aaaa/xxxx%2Fyyyy' )
    )

response = server.get (
            uri: uri, 
            requestContentType: JSON
            )
Run Code Online (Sandbox Code Playgroud)