簡體   English   中英

OkHttp3不返回響應

[英]OkHttp3 Not Returning Back Response

有很多使用OkHTTP3發出請求的示例,但是,我仍然無法發出正確的請求。 據我所知,我的設置是正確的。

我不斷收到如下所示的回復。 我不知道他們的意思。

{ “CONTENTLENGTH”:238, “contentTypeString”: “應用/ JSON”, “源”:{ “緩沖液”:{ “大小”:0}, “閉合”:假, “源”:{ “bytesRead”:0 , “已完成”:假, “委托”:{ “閉合”:假, “已完成”:真 “maxByteCount”:16777216, “readBuffer”:{ “頭”:{ “數據”:[123,34,105,115,85,115,101,114 ,83,117,98,115,99,114,105,98,101,100,34,58,116,114,117,101,44,34,115,101 ...]}

我發出請求的方式是傳遞一個請求對象,然后使用RequestBody.create()方法將我的請求對象轉換為OkHttp RequestBody對象。 我開始以為我的請求正文是錯誤的,所以我硬編碼了一個json字符串。 我收到相同的結果。 我究竟做錯了什么? 我是否必須將其包裝在asynctask中? 如果使用入隊,我認為情況並非如此。

private static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");

    public void createPostRequest(Request request, final ResultCallback callback,
                                  String url, HashMap<String, String> header) {
        // create gson object
        final Gson gson = new Gson();
        String testRequest = "{\"fName\": \"John\",\"lName\": \"Doe\",\"phoneNumber\": \"5555555\",\"isValidated\": \"false\",\"city\": \"Los Angeles",\"street\": \"Sesame Street\"}";

        // set header
        Headers headers = Headers.of(header);
        // form request body
        RequestBody requestBody = RequestBody.create(JSON, testRequest );
        // form request.
        Request okHttpRequest = new Request.Builder()
                .url(url)
                .post(requestBody)
                .headers(headers)
                .build();

        // prepares the request to be executed
        client.newCall(okHttpRequest).enqueue(new okhttp3.Callback() {
            @Override
            public void onFailure(@NonNull Call call, @NonNull IOException e) {
                // handle error
            }

            @Override
            public void onResponse(@NonNull Call call, @NonNull Response response) {
                if (response.isSuccessful()) {
                    String jsonString = gson.toJson(response.body());
                    // jsonString is gibberish as posted above
                }
            }
        });
    }

我的日志中沒有收到任何錯誤。 這就是OkHttp的全部返回

2019-06-25 12:46:27.435 23219-23248 / com.demo.android.address W / oid.address.dem:訪問隱藏的方法Lcom / android / org / conscrypt / OpenSSLSocketImpl;-> getAlpnSelectedProtocol()[B(淺灰色列表,反射)2019-06-25 12:46:27.698 23219-23248 / com.demo.android.address W / oid.address.dem:無法解析Lokhttp3 / internal / http / RealResponseBody; 注釋類2132 2019-06-25 12:46:27.699 23219-23248 / com.demo.android.address W / oid.address.dem:無法解析Lokhttp3 / internal / http / RealResponseBody; 注釋類2132 2019-06-25 12:46:27.702 23219-23248 / com.demo.android.address W / oid.address.dem:無法解析Lokhttp3 / ResponseBody; 注釋類2132 2019-06-25 12:46:27.703 23219-23248 / com.demo.android.address W / oid.address.dem:無法解析Lokhttp3 / ResponseBody; 注釋類2132 2019-06-25 12:46:27.707 23219-23248 / com.demo.android.address W / oid.address.dem:無法解析Lokio / Buffer; 注釋類2132 2019-06-25 12:46:27.708 23219-23248 / com.demo.android.address W / oid.address.dem:無法解析Lokio / Buffer; 注釋類2132

您將轉換為JSON而不是FROM。 在這里應該是

String str = gson.fromJson("\"abc\"", String.class);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM