POST Retrofit 2x raw JSONArray String в Котлине - PullRequest
0 голосов
/ 21 декабря 2018

Как разместить необработанную строку jsonArray в kotlin, используя модификацию

im с таймаутом ответом на onFailure метод

вот пример массива строкя хочу опубликовать

[{"username": "username4"}, {"username": "username2"}]

вот мое определение конечной точки

@Headers("Content-Type: application/json;charset=UTF-8")
    @POST("insert/createuser")
    fun postuser(@Body logs:String ):Call<ArrRes>

вот мои классы

class ArrRes{

    @SerializedName("username")
    @Expose
    var username: String = ""

    @SerializedName("message")
    @Expose
    var message: String = ""

    @SerializedName("status")
    @Expose
    var status: String = ""
}

вот мой метод публикации

var obj = JSONObject ();var arr = JSONArray ();

    for (i in 0  until 5){
        obj.put("username","username${i}");
        arr.put(obj);
    }

    Log.i("app:sync","${arr.toString()}")

    mService!!.postuser(arr.toString()).enqueue(
           object : Callback<LogResponse> {
                override fun onFailure(call: Call<LogResponse>, t: Throwable) {
                    Log.i("app:retro:service", "onFailure ${t.message}")
                }

                override fun onResponse(call: Call<LogResponse>, response: Response<LogResponse>) {
                    if (response.isSuccessful()) {
                        Log.i("app:retro:service", "onResponse true ${response.body()!!.toString()}")
                    } else {
                        Log.i("app:retro:service", "onResponse false ${response.raw().toString()}")
                    }
                }
           }
    )

Вот пример успешного сообщения с использованием почтальона

enter image description here

Спасибо за помощь :)

1 Ответ

0 голосов
/ 21 декабря 2018

Я решаю эту проблему, добавляя следующие зависимости:

implementation 'com.squareup.retrofit2:converter-scalars:$version'

Существует несколько существующих преобразователей Retrofit для различных форматов данных.Вы можете сериализовать и десериализовать объекты Java в JSON или XML или любой другой формат данных и наоборот.В доступных конвертерах вы также найдете Retrofit Scalars Converter, который выполняет анализ любого примитива Java, который будет помещен в тело запроса.Конвертация применяется в обоих направлениях: запросы и ответы. https://futurestud.io/tutorials/retrofit-2-how-to-send-plain-text-request-body

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...