httpPost对JSON发送和接收
来源:程序员人生 发布时间:2016-11-22 08:36:22 阅读次数:9187次
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()) > ⑴) {
sb.append((char) ch);
}
rec_string = sb.toString().trim();
/*解析终了关闭输入流*/
rd.close();
} catch (Exception e) {
/*异常处理*/
rec_string = "⑴07";
System.out.println(e);
} finally {
if (urlConn != null) {
/*关闭URL连接*/
urlConn.disconnect();
}
}
/*返回响应内容*/
return rec_string;
}
上面是另外一种方式的要求
下面是httpost:
HTTPPost发送JSON:
private static final String APPLICATION_JSON = "application/json";
private static final String CONTENT_TYPE_TEXT_JSON = "text/json";
public static void httpPostWithJSON(String url, String json)
throws Exception {
// 将JSON进行UTF⑻编码,以便传输中文
String encoderJson = URLEncoder.encode(json, HTTP.UTF_8);
DefaultHttpClient httpClient =
new DefaultHttpClient();
HttpPost httpPost =
new HttpPost(url);
httpPost.addHeader(HTTP.CONTENT_TYPE, APPLICATION_JSON);
StringEntity se =
new StringEntity(encoderJson);
se.setContentType(CONTENT_TYPE_TEXT_JSON);
se.setContentEncoding(
new BasicHeader(HTTP.CONTENT_TYPE, APPLICATION_JSON));
httpPost.setEntity(se);
httpClient.execute(httpPost);
}
接收HTTPPost中的JSON:
public static String receivePost(HttpServletRequest request)
throws IOException, UnsupportedEncodingException {
// 读取要求内容
BufferedReader br =
new BufferedReader(
new InputStreamReader(request.getInputStream()));
String line =
null;
StringBuilder sb =
new StringBuilder();
while((line = br.readLine())!=
null){
sb.append(line);
}
// 将资料解码
String reqBody = sb.toString();
return URLDecoder.decode(reqBody, HTTP.UTF_8);
}
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠