Android(Java / Kotlin)-Http错误400-错误的请求,该请求只有标头,没有正文

时间:2018-11-08 18:22:36

标签: java android kotlin httpurlconnection

所有人!

我一直在构建和使用使用我所在公司的API的应用。当我通过带有标头(编码,授权等)和正文(作为JSON,使用Content-Type =“ application / json”)的URL连接(通过HttpURlConnection)执行请求(GET)时,响应代码为200,并且连接效果很好,但是我在另一个请求中使用了相同的标头,但没有内容,我收到了错误的请求。

我已经尝试设置doOutout = false,但这是行不通的。

我认为URL和标头都可以,因为我执行了邮递员的请求并得到了响应。

这是我创建连接和连接的方式:

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") 
        }

2 个答案:

答案 0 :(得分:0)

错误的请求表明,这与您的请求形成方式有关。

您设置的请求标头之一可能有问题。查看接受的请求标头here

字符集应该被命名为Accept-Charset,而且我还没有看到使用X-Serial的任何例子。

Here是使用HttpUrlConnection设置GET请求的示例。您可以尝试删除除Authorization之外的所有标头,并将请求方法设置为GET,如本例所示。

答案 1 :(得分:0)

我发现了问题所在:我! $ token值是使用标志DEFAULT生成的。意识到这一点之后,我把标志NO_WRAP放下,我的请求成功了。

我不好!但是感谢大家的支持!