gpt4 book ai didi

json - HTTPBuilder 设置请求内容类型

转载 作者:行者123 更新时间:2023-12-02 03:49:13 24 4
gpt4 key购买 nike

我正在使用以下代码对外部系统执行 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
}
}

最佳答案

向请求添加特定 header 似乎可以解决我的问题。

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
headers.'Content-Type' = 'application/json'

// 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
}

关于json - HTTPBuilder 设置请求内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15067284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com