[Java] 两种发起POST请求方法,并接收返回的响应内容的处理方式

1、利用apache提供的commons-httpclient-3.0.jar包

代码如下:

/**
  * 利用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(); }

转载于:https://www.cnblogs.com/jqmtony/p/3711006.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值