今天进行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;
- }