您的位置:首页 > 理论基础 > 计算机网络

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:


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-8编码,以便传输中文


        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);


    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: