gpt4 book ai didi

android - 在我的 KtorClient 的 DefaultRequest 中声明 ContentType = Application.Json 后,我可以更改特定请求的 ContentType header 吗

转载 作者:行者123 更新时间:2023-12-04 23:50:38 28 4
gpt4 key购买 nike

我正在开发我的 android 项目,我正在创建一个请求函数来上传文件,该请求如下所示,

httpClient.put(uri) {
body = MultiPartFormDataContent(formData {
append("file", fileContent, Headers.build {
append(HttpHeaders.ContentType, fileMimeType)
append(HttpHeaders.ContentDisposition, ContentDisposition.File.withParameter(ContentDisposition.Parameters.FileName, fileOriginalName))
})
})
}
所以你可以看到这个请求有一个 ContentType 头,但是我已经在我的 Ktor HttpClient 中声明了 ContentType 头,
install(DefaultRequest) {
url {
protocol = URLProtocol.HTTP
host = baseURL
}

headers {
append(HttpHeaders.ContentType, ContentType.Application.Json)
append(HttpHeaders.Authorization, accessToken)
append(USER, user)
}
}
所以我的问题是我的请求将采用哪种 ContentType?如果它不能接受我在请求函数中指定的 ContentType,那么我怎样才能让它接受与默认值不同的 ContentType?

最佳答案

如果您尝试设置 Content-Type DefaultRequest 中的标题那么你会得到io.ktor.http.UnsafeHeaderException: Header(s) [Content-Type] are controlled by the engine and cannot be set explicitly .
因此,如果您删除 append(HttpHeaders.ContentType,ContentType.Application.Json) 行然后 Content-Type的请求将是 multipart/form-dataContent-Type对于file body 部分 ‒ fileMimeType 的值多变的。

关于android - 在我的 KtorClient 的 DefaultRequest 中声明 ContentType = Application.Json 后,我可以更改特定请求的 ContentType header 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68049709/

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