POSTING для API сервера с Kotlin (OkHttp / Retrofit)

Я пытаюсь выполнить POST-строки API в Kotlin, используя либо OkHttp, либо Retrofit.

Если я использую только OkHttp , независимо от того, что я POST, я всегда получаю пустой массив.

private fun sendRegistrationToServer(refreshedToken: String) { Log.e(_tag, "Refreshed token: " + refreshedToken) val okClient = OkHttpClient() val requestBody = FormBody.Builder() .add("id", "0") .add("token", refreshedToken) .build() val request = Request.Builder() .url("http://192.168.1.27/cacklechat/updates") .post(requestBody) .build() try { val response = okClient.newCall(request).execute() Log.e("B_RES", response.body()?.string()) } catch (e: IOException) { Log.e("RES_FAIL", e.toString()) } } 

Логкат говорит:

 01-09 17:58:24.054 20439-20670/cackle.cackle_android E/B_RES: Array ( ) 

Если я тестирую API с помощью клиента REST, все работает нормально, и я возвращаю то, что я сделал POST. (Прямо сейчас API просто отправляет обратно $_POST )

Если я попробую с помощью Retrofit использовать следующий код:

 private fun sendRegistrationToServer(refreshedToken: String) { Log.e(_tag, "Refreshed token: " + refreshedToken) val apiBaseUrl = "http://192.168.1.27/cacklechat/" val okClient = OkHttpClient().newBuilder().build() val retrofit = Retrofit.Builder() .baseUrl(apiBaseUrl) .client(okClient) .addConverterFactory(GsonConverterFactory.create()) .build() val backendService = retrofit.create(BackendService::class.java) val call = backendService.updateToken("0", refreshedtoken) val result = call.execute().body() Log.e("RES", result.toString()) } interface BackendService { @POST("updates") fun updateToken( @Field("id") id: String, @Field("token") token: String ): Call } 

Я просто получаю сообщение об ошибке:

 01-09 18:01:41.415 21218-21535/cackle.cackle_android E/AndroidRuntime: FATAL EXCEPTION: pool-3-thread-1 Process: cackle.cackle_android, PID: 21218 java.lang.IllegalArgumentException: Unable to create call adapter for interface okhttp3.Call for method BackendService.updateToken at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:752) at retrofit2.ServiceMethod$Builder.createCallAdapter(ServiceMethod.java:237) at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:162) at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:170) at retrofit2.Retrofit$1.invoke(Retrofit.java:147) at java.lang.reflect.Proxy.invoke(Proxy.java:913) at $Proxy1.updateToken(Unknown Source) at cackle.cackle_android.InstanceIdService.sendRegistrationToServer(InstanceIdService.kt:50) at cackle.cackle_android.InstanceIdService.onTokenRefresh(InstanceIdService.kt:34) at com.google.firebase.iid.FirebaseInstanceIdService.handleIntent(Unknown Source:12) at com.google.firebase.iid.zzg.run(Unknown Source:26) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764) Caused by: java.lang.IllegalArgumentException: Could not locate call adapter for interface okhttp3.Call. Tried: * retrofit2.ExecutorCallAdapterFactory at retrofit2.Retrofit.nextCallAdapter(Retrofit.java:241) at retrofit2.Retrofit.callAdapter(Retrofit.java:205) at retrofit2.ServiceMethod$Builder.createCallAdapter(ServiceMethod.java:235) ... 12 more 

Я не смог найти способ решить эту проблему после многих часов Googling и нескольких попыток.

    Давайте будем гением компьютера.