Respons OkHttp 204 dengan tipe konten json

Ketika saya menggunakan okhttp3 ver 4.7.2 untuk membuat permintaan json dengan api ketiga, saya akan menerima respons 204. Tetapi ketika saya menggunakan asyncHttpClient untuk membuat permintaan json yang sama, saya akan menerima data yang benar.

Ini kode saya menggunakan okhttp3:

        MediaType JSON =  MediaType.get("application/json");

        HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
        interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
        interceptor.setLevel(HttpLoggingInterceptor.Level.HEADERS);
        OkHttpClient client = new OkHttpClient().newBuilder().addInterceptor(interceptor).build();

        RequestBody body = RequestBody.create("{}", JSON);
        Request request = new Request.Builder()
                .url(URL).post(body).build();
        System.out.println("Start");
        okhttp3.Response response = client.newCall(request).execute();
        System.out.println(response.body().string()); // null
        System.out.println(response.code()); // 204

Ini kode saya menggunakan asyncHttpClient:

        ListenableFuture<org.asynchttpclient.Response> whenResponse = client
                .preparePost(URL)
                .addHeader("Content-Type", "application/json").setBody("{}").execute();
        org.asynchttpclient.Response response = whenResponse.get();
        System.out.println(response.getResponseBody()); // Correct response body
        System.out.println(response.getStatusCode()); // 200

person Xperia    schedule 17.09.2020    source sumber


Jawaban (1)


Permintaan json dikirim melalui okhttp memiliki tipe konten adalah application/json; charset=utf-8, api ketiga hanya mengizinkan aplikasi/json. Jadi tanggapan mereka 204.

person Xperia    schedule 18.09.2020