【发布时间】:2019-04-12 07:50:56
【问题描述】:
大家!
我一直在构建和使用我工作所在公司的 API 的应用程序。当我使用带有标头(编码、授权等)和正文(作为 JSON,使用 Content-Type =“application/json”)的 URL 连接(通过 HttpURlConnection)执行请求(GET)时,响应代码为 200 和连接工作得很好,但是我在另一个请求中使用了相同的标头但没有内容,我收到了一个错误的请求。
我已经尝试设置doOutout = false,但它不起作用。
我认为 URL 和标头一切正常,因为我执行了 Postman 的请求并收到了响应。
这是我创建连接和连接的方式:
val uri = Uri.parse("Base URL").buildUpon().appendPath(path).build() val url = URL(uri.toString()) val connection = url.openConnection() as HttpURLConnection connection.apply {
addRequestProperty("Charset", Charsets.UTF_8.displayName())
addRequestProperty("Authorization", "Basic $token")
addRequestProperty("X-Serial", 5036.toString())
requestMethod = "GET"
connectTimeout = 0
readTimeout = 0
doOutput = false
if (responseCode != HTTP_OK) throws Exception("Erro")
}
【问题讨论】:
-
能否看到失败请求和响应的 JSON 结构?
-
@EamonScullion,在这个请求中没有 JSON。作为响应,JSON 看起来像这样: [ { "Id": "1", "Nome": "Name" }, { "Id": "2", "Nome": "Name" } ] 这是异常: 引起:br.com.company.app.api.resource.ResponseException: Erro da conexão com API!原因:400:在 br.com.company.app.api.resource.BandeirasClient.listarBandeiras(BandeirasClient.kt: 39)
-
不知道请求属性 X-Serial 对 HttpUrlConnection 是否有效。此 API 正在作为用 C# 为 windows 制作的应用程序工作。
标签: java android kotlin httpurlconnection