[Java] 两种发起POST请求方法,并接收返回的响应内容的处理方式
2014-05-06 10:40
661 查看
1、利用apache提供的commons-httpclient-3.0.jar包
代码如下:
2、利用java自带的java.net.*包下提供的工具类
代码如下:
代码如下:
/** * 利用HttpClient发起POST请求,并接收返回的响应内容 * * @param url 请求链接 * @param type 交易或响应编号 * @param message 请求内容 * @return 响应内容 */ public String transRequest(String url, String type, String message) { // 响应内容 String result = ""; // 定义http客户端对象--httpClient HttpClient httpClient = new HttpClient(); // 定义并实例化客户端链接对象-postMethod PostMethod postMethod = new PostMethod(url); try{ // 设置http的头 postMethod.setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=UTF-8"); // 填入各个表单域的值 NameValuePair[] data = { new NameValuePair("type", type), new NameValuePair("message", message) }; // 将表单的值放入postMethod中 postMethod.setRequestBody(data); // 定义访问地址的链接状态 int statusCode = 0; try { // 客户端请求url数据 statusCode = httpClient.executeMethod(postMethod); } catch (Exception e) { e.printStackTrace(); } // 请求成功状态-200 if (statusCode == HttpStatus.SC_OK) { try { result = postMethod.getResponseBodyAsString(); } catch (IOException e) { e.printStackTrace(); } } else { log.error("请求返回状态:" + statusCode); } } catch (Exception e) { log.error(e.getMessage(), e); } finally { // 释放链接 postMethod.releaseConnection(); httpClient.getHttpConnectionManager().closeIdleConnections(0); } return result; }
2、利用java自带的java.net.*包下提供的工具类
代码如下:
/** * 利用URL发起POST请求,并接收返回信息 * * @param url 请求URL * @param message 请求参数 * @return 响应内容 */ @Override public String transport(String url, String message) { StringBuffer sb = new StringBuffer(); try { URL urls = new URL(url); HttpURLConnection uc = (HttpURLConnection) urls.openConnection(); uc.setRequestMethod("POST"); uc.setRequestProperty("content-type", "application/x-www-form-urlencoded"); uc.setRequestProperty("charset", "UTF-8"); uc.setDoOutput(true); uc.setDoInput(true); uc.setReadTimeout(10000); uc.setConnectTimeout(10000); OutputStream os = uc.getOutputStream(); DataOutputStream dos = new DataOutputStream(os); dos.write(message.getBytes("utf-8")); dos.flush(); os.close(); BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream(), "utf-8")); String readLine = ""; while ((readLine = in.readLine()) != null) { sb.append(readLine); } in.close(); } catch (Exception e) { log.error(e.getMessage(), e); } return sb.toString(); }
相关文章推荐
- java中两种发起POST请求,并接收返回的响应内容的方式 (转)
- Java发起Post请求的两种方式
- java中httpclent以post方式提交请求时,http返回码是302重定向时,不自动跳转的处理
- java中httpclent以post方式提交请求时,http返回码是302重定向时,不自动跳转的处理
- 初涉Ajax,以post或get方法发送数据,以json或xml形式接收服务器返回的请求
- ajax请求后台返回json的两种处理方法
- php curl post请求,java后台用request文件流方式接收
- java 通过发送json,post请求,返回json数据的方法
- php curl post请求,java后台用request文件流方式接收
- java实现:http协议get和post方法的url参数请求响应及交互
- 通过http/https的POST方式,发送、处理和接收XML文件内容
- JavaWeb学习笔记之spring mvc处理方法支持如下的返回方式
- python通过get,post方式发送http请求和接收http响应的方法
- python---get/post请求下载指定URL返回的网页内容,出现gzip乱码处理。设置Accept-Encoding为gzip,deflate,返回的网页是乱码
- Android,Post请求返回乱码问题的处理方式
- python通过get,post方式发送http请求和接收http响应的方法
- Spring控制器响应(action)请求的几种处理方式,如返回JSON,MODEL MODELVIEW,STRING
- java发起http请求获取返回的Json对象方法
- 关于PHP CURL post数据时数据过大导致无法接收返回信息的处理方法