我正在使用以下代码对外部系统执行 HTTP POST。问题是外部系统在使用下面的代码时总是得到一个“空”的内容类型。有没有办法在使用 HTTPBuilder 时设置内容类型。
我尝试了其他执行相同请求的工具,但是远程系统获得了一个好的 contentType('application/json')。
def execute(String baseUrl, String path, Map requestHeaders=[:], Map query=[:], method = Method.POST) {
try {
def http = new HTTPBuilder(baseUrl)
def result = null
// perform a ${method} request, expecting TEXT response
http.request(method, ContentType.JSON) {
uri.path = path
uri.query = query
// add possible headers
requestHeaders.each { key, value ->
headers."${key}" = "${value}"
}
// response handler for a success response code
response.success = { resp, reader ->
result = reader.getText()
}
}
return result
} catch (groovyx.net.http.HttpResponseException ex) {
ex.printStackTrace()
return null
} catch (java.net.ConnectException ex) {
ex.printStackTrace()
return null
}
}