问题描述
- HttpURLConnection post
-
用 HttpURLConnection post请求提交服务器 提交成功 后 , 怎么得到服务器返回的JSON json 里只有提交成功 还有一个状态码。我用connection.getResponseMessage(); 只是返回的是 个OK 。 我想得到返会的Json
解决方案
connection.getInputStream();
你的问题比较抽象,因为不知道你在请求什么东西。但是获取服务器里返回的东西,应该是这种写法,最后你需要用流去处理一下。
解决方案二:
connection.getResponseMessage(); 获取的response的状态信息,或者是null,贴上 api
想获取 json 信息,应该先获取到流,用 connection.getInputStream() 返回 InputStream 然后再解析.
解决方案三:
你应该处理的是响应数据流里面的信息,读取数据流里面的信息解析成字符串格式,然后用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了。
解决方案四:
HttpURLConnection post 请求
HttpURLConnection POST 上传文件
HttpURLConnection-POST-GSON
时间: 2024-09-30 17:26:57