Я хочу отправить json данные из android приложения на сервер
это json данные
data = {"researcherID":"asdf","timestamp":"2020-05-27 15:36:42:902","weather":"Clouds","temperature":23.620000000000005,"humidity":"60","pm25":"16","pm10":"45"}
Я бы хотел поработать над передачей этих данных на локальный сервер. Однако кажется, что значение не доставляется должным образом с этой ошибкой. Это ошибка
W/System.err: java.net.ProtocolException: cannot write request body after response has been read
мой сервер передал код данных
class SendDeviceDetails : AsyncTask<String?, Void?, String>() {
override fun doInBackground(vararg params: String?): String {
var data = ""
var httpURLConnection: HttpURLConnection? = null
try {
httpURLConnection = URL(params[0]).openConnection() as HttpURLConnection
httpURLConnection.setRequestProperty("Accept", "application/json")
httpURLConnection.setRequestProperty("Content-Type", "application/json")
httpURLConnection.requestMethod = "POST"
httpURLConnection.doOutput = true
httpURLConnection.doInput = true
Timber.d("Test Checked is doInBackground url = ${params.get(0)} \n data = ${params.get(1)} \n responseCode = ${httpURLConnection.responseCode}")
val wr = DataOutputStream(httpURLConnection.outputStream)
wr.writeBytes("PostData=" + params.get(1))
wr.flush()
wr.close()
val ins: InputStream = httpURLConnection.getInputStream()
val inputStreamReader = InputStreamReader(ins)
var inputStreamData: Int = inputStreamReader.read()
while (inputStreamData != -1) {
val current = inputStreamData.toChar()
inputStreamData = inputStreamReader.read()
data += current
Timber.d("Test C ${current}")
}
} catch (e: Exception) {
e.printStackTrace()
} finally {
httpURLConnection?.disconnect()
}
return data
}
}
Ошибка исходит именно из этого кода
val wr = DataOutputStream(httpURLConnection.outputStream)
Не могли бы вы дать мне небольшой совет делать то, что я хочу делать? плз:)