簡體   English   中英

OkHttp客戶端返回空值

[英]OkHttp Client returns a null value

我正在嘗試將okhttpclient與okhttp3一起使用,但是它返回一個空值。

這是我的代碼:

OkHttpClient client = new OkHttpClient();

HttpUrl.Builder urlBuilder = HttpUrl.parse("http://www.test.com/get_data.php").newBuilder();
urlBuilder.addEncodedQueryParameter("GroupName", groupName);
String url = urlBuilder.build().toString();

Request request = new Request.Builder()
    .url(url)
    .build();

client.newCall(request).enqueue(new Callback() {

    @Override
    public void onFailure(Call call, IOException e) {

    }

    @Override
    public void onResponse(Call call, Response response) throws IOException {
        try {
            String responseData = response.body().string();
            JSONObject jsonObj = new JSONObject(responseData);
            jArray = jsonObj.getJSONArray("result");
        } catch (JSONException e) {
        }
    }
});

然后responseData返回{“ result”:[]}

我嘗試使用上面相同的網址,但使用httpClient的方法不同,它返回我想要的值,這是httpclient代碼:

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.test.com/get_data.php");
httppost.setEntity(new UrlEncodedFormEntity(data));
HttpResponse response   = httpclient.execute(httppost);
Log.i("postData", response.getStatusLine().toString());
HttpEntity entity = response.getEntity();

StringBuilder sb = new StringBuilder();
String result = null;
try {
    BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent()), 65728);
    String line = null;
    while ((line = reader.readLine()) != null) {
        sb.append(line);
    }

    if(sb.toString().trim().length() > 0) {
        result = sb.toString();
        return result;
    }
}

請幫助我,一個具有okhttp經驗的人,為什么我需要okhttp? 由於httpClient在sdk 23中已被棄用,謝謝。

您沒有在客戶端對象上執行。 嘗試添加以下代碼片段:

Response response = client.newCall(request).execute();
        return response.body().string();

為了參考示例,請參見以下鏈接: http : //www.vogella.com/tutorials/JavaLibrary-OkHttp/article.html

暫無
暫無

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

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