httpPost对JSON发送和接收
2016-09-20 19:04
411 查看
public static String postURL(String commString, String address, String encode) {
String rec_string = "";
URL url = null;
HttpURLConnection urlConn = null;
try {
/*得到url地址的URL类*/
url = new URL(address);
/*获得打开需要发送的url连接*/
urlConn = (HttpURLConnection) url.openConnection();
/*设置连接超时时间*/
urlConn.setConnectTimeout(30000);
/*设置读取响应超时时间*/
urlConn.setReadTimeout(30000);
/*设置post发送方式*/
urlConn.setRequestMethod("POST");
/*发送commString*/
urlConn.setDoOutput(true);
urlConn.setDoInput(true);
OutputStreamWriter out;
out = new OutputStreamWriter(urlConn.getOutputStream(), encode);
out.write(commString);
out.flush();
out.close();
/*发送完毕 获取返回流,解析流数据*/
BufferedReader rd = new BufferedReader(new InputStreamReader(urlConn.getInputStream(), encode));
StringBuffer sb = new StringBuffer();
int ch;
while ((ch = rd.read()) > -1) {
sb.append((char) ch);
}
rec_string = sb.toString().trim();
/*解析完毕关闭输入流*/
rd.close();
} catch (Exception e) {
/*异常处理*/
rec_string = "-107";
System.out.println(e);
} finally {
if (urlConn != null) {
/*关闭URL连接*/
urlConn.disconnect();
}
}
/*返回响应内容*/
return rec_string;
}上面是另一种方式的请求
下面是httpost:
HTTPPost发送JSON:
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
private static final String APPLICATION_JSON = "application/json";
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
private static final String CONTENT_TYPE_TEXT_JSON = "text/json";
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
public static void httpPostWithJSON(String url, String json) throws Exception {
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
// 将JSON进行UTF-8编码,以便传输中文
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
String encoderJson = URLEncoder.encode(json, HTTP.UTF_8);
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
DefaultHttpClient httpClient = new DefaultHttpClient();
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
HttpPost httpPost = new HttpPost(url);
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
httpPost.addHeader(HTTP.CONTENT_TYPE, APPLICATION_JSON);
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
StringEntity se = new StringEntity(encoderJson);
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
se.setContentType(CONTENT_TYPE_TEXT_JSON);
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, APPLICATION_JSON));
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
httpPost.setEntity(se);
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
httpClient.execute(httpPost);
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
接收HTTPPost中的JSON:
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
public static String receivePost(HttpServletRequest request) throws IOException, UnsupportedEncodingException {
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
// 读取请求内容
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
String line = null;
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
StringBuilder sb = new StringBuilder();
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
while((line = br.readLine())!=null){
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
sb.append(line);
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
// 将资料解码
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
String reqBody = sb.toString();
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
return URLDecoder.decode(reqBody, HTTP.UTF_8);
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
String rec_string = "";
URL url = null;
HttpURLConnection urlConn = null;
try {
/*得到url地址的URL类*/
url = new URL(address);
/*获得打开需要发送的url连接*/
urlConn = (HttpURLConnection) url.openConnection();
/*设置连接超时时间*/
urlConn.setConnectTimeout(30000);
/*设置读取响应超时时间*/
urlConn.setReadTimeout(30000);
/*设置post发送方式*/
urlConn.setRequestMethod("POST");
/*发送commString*/
urlConn.setDoOutput(true);
urlConn.setDoInput(true);
OutputStreamWriter out;
out = new OutputStreamWriter(urlConn.getOutputStream(), encode);
out.write(commString);
out.flush();
out.close();
/*发送完毕 获取返回流,解析流数据*/
BufferedReader rd = new BufferedReader(new InputStreamReader(urlConn.getInputStream(), encode));
StringBuffer sb = new StringBuffer();
int ch;
while ((ch = rd.read()) > -1) {
sb.append((char) ch);
}
rec_string = sb.toString().trim();
/*解析完毕关闭输入流*/
rd.close();
} catch (Exception e) {
/*异常处理*/
rec_string = "-107";
System.out.println(e);
} finally {
if (urlConn != null) {
/*关闭URL连接*/
urlConn.disconnect();
}
}
/*返回响应内容*/
return rec_string;
}上面是另一种方式的请求
下面是httpost:
HTTPPost发送JSON:
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
private static final String APPLICATION_JSON = "application/json";
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
private static final String CONTENT_TYPE_TEXT_JSON = "text/json";
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
public static void httpPostWithJSON(String url, String json) throws Exception {
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
// 将JSON进行UTF-8编码,以便传输中文
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
String encoderJson = URLEncoder.encode(json, HTTP.UTF_8);
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
DefaultHttpClient httpClient = new DefaultHttpClient();
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
HttpPost httpPost = new HttpPost(url);
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
httpPost.addHeader(HTTP.CONTENT_TYPE, APPLICATION_JSON);
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
StringEntity se = new StringEntity(encoderJson);
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
se.setContentType(CONTENT_TYPE_TEXT_JSON);
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, APPLICATION_JSON));
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
httpPost.setEntity(se);
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
httpClient.execute(httpPost);
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
接收HTTPPost中的JSON:
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
public static String receivePost(HttpServletRequest request) throws IOException, UnsupportedEncodingException {
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
// 读取请求内容
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
String line = null;
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
StringBuilder sb = new StringBuilder();
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
while((line = br.readLine())!=null){
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
sb.append(line);
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
// 将资料解码
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
String reqBody = sb.toString();
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
return URLDecoder.decode(reqBody, HTTP.UTF_8);
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
相关文章推荐
- TCP协议小结一--TCP连接与释放以及TCP与UDP的区别
- [Windows网络编程课设]南工程聊天室客户端源码
- HTTP中的URL长度限制
- http://www.cnblogs.com/yuchenlin/
- curl 取得HTTP返回的状态码
- http异步请求的一种调用示例
- 开源免费的C/C++网络库(c/c++ sockets library)
- 三级网络综合题第三道--DHCP服务器
- 重定向Http status code 303 和 302
- HTTP status code
- iOS网络编程-Socket
- Tomcat创建HTTPS访问,java访问https
- unable to rewind rpc post data - try increasing http.postBuffer
- CentOS6.5网络设置
- 图解TCP/IP——第1章 网络基础知识
- https是如何工作的?
- AsyncHttpClient使用
- webStorm 注册码
- JAVA编写的一个简单的Socket实现的HTTP响应服务器进阶版
- 安卓网络框架的选择