簡體   English   中英

Android(Java / Kotlin)-Http錯誤400-錯誤的請求,該請求只有標頭,沒有正文

[英]Android (Java/Kotlin) - Http error 400 - Bad Request and the request have only header without body

大家!

我一直在構建和使用使用我所在公司的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") 
        }

錯誤的請求表明您的請求形成方式存在問題。

您正在設置的請求標頭之一可能有問題。 此處查看接受的請求標頭。

Charset可能應命名為Accept-Charset,而且我還沒有看到使用X-Serial的任何示例。

是使用HttpUrlConnection設置GET請求的示例。 您可以嘗試刪除除Authorization之外的所有標頭,並將請求方法設置為GET,如本例所示。

我發現了問題所在:我! $ token值是使用標志DEFAULT生成的。 意識到這一點之后,我將標志NO_WRAP放入,並且我的請求成功了。

我的錯! 但是感謝大家的支持!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM