次のコードを使用して、外部システムに対して HTTP POST を実行しています。問題は、以下のコードを使用すると、外部システムが常に「null」コンテンツ タイプを取得することです。HTTPBuilder を使用するときに contenttype を設定する方法はありますか。
同じリクエストを実行する他のツールを試してみましたが、リモート システムは適切な 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
}
}