2 qq 33069321 qq_33069321 于 2016.03.24 17:28 提问

HttpURLConnection post 2C

用 HttpURLConnection post请求提交服务器 提交成功 后 , 怎么得到服务器返回的JSON json 里只有提交成功 还有一个状态码。

我用connection.getResponseMessage(); 只是返回的是 个OK 。 我想得到返会的Json

4个回答

Dissle
Dissle   2016.03.24 17:39

connection.getInputStream();
你的问题比较抽象,因为不知道你在请求什么东西。但是获取服务器里返回的东西,应该是这种写法,最后你需要用流去处理一下。

Dissle
Dissle URL url = new URL(httpUrl); HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); con.setRequestMethod("GET"); con.connect(); InputStream inputStream = con.getInputStream();
一年多之前 回复
love_register
love_register   2016.03.24 17:48

connection.getResponseMessage(); 获取的response的状态信息,或者是null,贴上 api
图片说明
想获取 json 信息,应该先获取到流,用 connection.getInputStream() 返回 InputStream 然后再解析.

love_register
love_register 回复qq_33069321: 楼下给了清晰的代码,你试试可行不
一年多之前 回复
qq_33069321
qq_33069321 connection.getResponseMessage(); 获得的信息 是 OK 我已经写进服务器了 就是服务器返回的 { "RetMessage": "修改成功!", "RetCode": 1 } 我怎么拿到它
一年多之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.24 18:54

你应该处理的是响应数据流里面的信息,读取数据流里面的信息解析成字符串格式,然后用JSON转换工具进行处理。参考代码如下:

 /**
     * 以http方式发送请求,并将请求响应内容以String格式返回
     * @param path    请求路径
     * @param method  请求方法
     * @param body    请求数据
     * @return 返回响应的字符串
     */
    public static String httpRequestToString(String path, String method, String body) {
        String response = null;
        HttpURLConnection conn = null;
        InputStream inputStream = null;
        InputStreamReader inputStreamReader = null;
        BufferedReader bufferedReader = null;
        try {
            URL url = new URL(path);
            conn = (HttpURLConnection) url.openConnection();
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setUseCaches(false);
            conn.setRequestMethod(method);
            if (null != body) {
                OutputStream outputStream = conn.getOutputStream();
                outputStream.write(body.getBytes("UTF-8"));
                outputStream.close();
            }

            inputStream = conn.getInputStream();
            inputStreamReader = new InputStreamReader(
                    inputStream, "UTF-8");
            bufferedReader = new BufferedReader(
                    inputStreamReader);
            String str = null;
            StringBuffer buffer = new StringBuffer();
            while ((str = bufferedReader.readLine()) != null) {
                buffer.append(str);
            }

            response = buffer.toString();
        } catch (Exception e) {
            logger.error(e);
        }finally{
            if(conn!=null){
                conn.disconnect();
            }
            try {
                bufferedReader.close();
                inputStreamReader.close();
                inputStream.close();
            } catch (IOException execption) {
                logger.error(execption);
            }
        }
        return response;
    }

然后,对于这个请求响应返回的字符串信息,用JSON处理工具来解析就OK了。

CSDNXIAON
CSDNXIAON   2016.03.30 11:22

HttpURLConnection post 请求
HttpURLConnection POST 上传文件
HttpURLConnection-POST-GSON
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!