Получение ответа {protocol = http / 1.1, code = 404, message = Not Found, url = https://test.test.com/service/one}
URL-адрес правильный, так как почтальон работает нормально.
Я пытался разобраться в этой ошибке, но большинство вещей возвращаются с URL-адресом был верным. и сама ошибка расплывчата.
код, который запускает его. строитель является допустимой строкой json. Я проверил это в почтальоне.
CoroutineScope(Dispatchers.Default).launch {
val call = submitService.submitCarton(builder.toString())
Log.d("submit", "begining")
withContext(Dispatchers.Main) {
if (call.isSuccessful) {
Log.d("submit",call.body() as String)
} else {
Log.d("submit", "else....")
}
}
}
фабрика обслуживания:
fun makeSubmitService() : SubmitService{
val url = "https://test.test.com/service/"
return Retrofit.Builder().baseUrl(url)
.client(okHttpClient).addConverterFactory(GsonConverterFactory.create())
.build().create(SubmitService::class.java)
}
интерфейс:
interface SubmitService {
@POST("one")
suspend fun submitCarton(@Body json: String): Response<myModel>
}
Ожидаемые результаты - ответ json, однако я не захожу так далеко.
редактировать: я создал okhttpclient и сделал запрос руководства, и я получаю сообщение 200 ок.
код для моего теста
val JSON = MediaType.parse("application/json; charset=utf-8")
val client = OkHttpClient()
val body = "some json"
val requestBody = RequestBody.create(JSON, body)
val request = Request.Builder()
.url("https://test.test.com/service/one")
.post(requestBody)
.build()
client.newCall(request).enqueue(object : Callback {
override fun onFailure(request: Request, e: IOException) {
Log.e("test", e.toString())
}
@Throws(IOException::class)
override fun onResponse(response: Response) {
Log.d("test", response.toString())
}
})