[英]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.