Android 如果未读取响应,HttpURLConnection不会发送请求
我有一个简单的帖子请求:Android 如果未读取响应,HttpURLConnection不会发送请求,android,httpurlconnection,Android,Httpurlconnection,我有一个简单的帖子请求: val url = URL(SEND_URL) val connection = url.openConnection() as HttpURLConnection connection.doOutput = true connection.addRequestProperty("Authorization", "...") connection.addRequestProperty(
val url = URL(SEND_URL)
val connection = url.openConnection() as HttpURLConnection
connection.doOutput = true
connection.addRequestProperty("Authorization", "...")
connection.addRequestProperty("Content-Type", "application/json")
val messageJson = Gson().toJson(message)
val outputStream = OutputStreamWriter(connection.outputStream, "UTF-8")
outputStream.write(messageJson)
outputStream.flush()
outputStream.close()
connection.connect()
它不发送任何东西
当我添加(而不是connection.connect())时
它起作用了
有人能给我解释一下为什么会这样吗?我不需要读取响应或响应代码,但如果没有它,我的请求将不会被发送。这就是
HttpURLConnection
的工作方式。在您尝试读取响应之前,它不会发送请求。你必须至少尝试阅读回复,即使你对回复不感兴趣(不过,老实说,你为什么不检查回复,看看你的POST请求是否有效?)
请参见此问题和答案:
连接。连接()
。太晚了!您已写入服务器。所以已经有了联系。现在你又尝试连接了?毫无意义。写之前先联系。
connection.responseCode
connection.disconnect()