今天进行OkHttp的同步请求
写的都是按照官方的去写的
但是返回的东西却不是我想要的
原因是我直接拿到Response后,直接Response.toString,想要拿到返回值
但是这样是错误的,正确的应该是Response.body().string这样拿到的才是正确的 服务器给的返回值
下面附上 同步请求正确的代码
/**
* 通过get请求,获取json实例
*
* @param urlStr 请求地址
*/
private String getString(String urlStr) {
ResponseBody responseBody = null;
try {
Response response = execute(urlStr);
if (response == null)
return null;
responseBody = response.body();
return responseBody.string();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (responseBody != null)
responseBody.close();
}
return null;
}
public Response execute(String url) {
Request request = new Request.Builder().url(url).build();
try {
Response response = client.newCall(request).execute();
if (response.isSuccessful())
return response;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}