舒心、快乐,比什么都重要

关于OkHttp同步请求的小错误

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

  

 

posted @ 2017-09-22 13:41  Arcturis  阅读(1142)  评论(0编辑  收藏  举报