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

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

  1. java中两种发起POST请求,并接收返回的响应内容的方式  (转)

    http://xyz168000.blog.163.com/blog/static/21032308201162293625569/ 2.利用java自带的java.net.*包下提供的工具类 代码如 ...

  2. 接口测试中GET和POST两种基本HTTP请求方法的区别

    面试时,可以回答(一般答前4条就行): GET参数通过url传递,POST放在request body中 GET请求在url中传递的参数是有长度限制的,而POST没有 GET比POST更不安全,因为参 ...

  3. Eclipse中SVN的安装步骤(两种)和使用方法

    Eclipse中SVN的安装步骤(两种)和使用方法 一.给Eclipse安装SVN,最常见的有两种方式:手动方式和使用安装向导方式.具体步骤如下: 方式一:手动安装 1.下载最新的Eclipse,我的 ...

  4. java两种同步机制的实现 synchronized和reentrantlock

    java两种同步机制的实现 synchronized和reentrantlock 双11加保障过去一周,趁现在有空,写一点硬货,因为在进入阿里之后工作域的原因之前很多java知识点很少用,所以记录一下 ...

  5. SSH简介及两种远程登录的方法

    出处 https://blog.csdn.net/li528405176/article/details/82810342 目录 SSH的安全机制 SSH的安装 启动服务器的SSH服务 SSH两种级别 ...

  6. C#两种创建快捷方式的方法

    C#两种创建快捷方式的方法http://www.cnblogs.com/linmilove/archive/2009/06/10/1500989.html

  7. iOS - UITableView中有两种重用Cell的方法

    UITableView中有两种重用Cell的方法: - (id)dequeueReusableCellWithIdentifier:(NSString *)identifier; - (id)dequ ...

  8. 两种ps切图方法(图层/切片)

    两种Ps切图方法 一.      基础操作: a)    Ctrl++ 放大图片,ctrl - -缩小图片 b)    按住空格键space+,点击鼠标左键,拖动图片. c)    修改单位,点击编辑 ...

  9. TextView两种显示link的方法

    TextView两种显示link的方法 一.简介 也是TextView显示文本控件两种方法 也是显示丰富的文本 二.方法 TextView两种显示link的方法  1)通过TextView里面的类ht ...

随机推荐

  1. OSPF虚链路配置.示例1

      在OSPF 网络中,区域0为骨干区域,其它的为非骨干区域,非骨干区域必须与骨干区域直接相连. 根据拓扑图可看到区域1与骨干区域0直接相连而区域2与骨干区域没有直接相连,这种情况下我们可以创建一条虚 ...

  2. java进程状态

    A thread state. A thread can be in one of the following states: NEWA thread that has not yet started ...

  3. OracleCommand.CommandText 无效

    OracleCommand insertADataCmd = conn.CreateCommand(); insertBDataCmd.CommandText = SQL OracleParamete ...

  4. Client Dependency学习

    Client Dependency Framework ---CDF CDF is a framework for managing CSS & JavaScript dependencies ...

  5. Android_UI_点击按钮切换背景效果实现

    实现按钮按下和释放,按钮背景图片相应切换效果的方法这里介绍两种,一种是在代码里实现,另一种是在xml文件里实现 一.在xml文件里 首先现在layout的一个xml文件下定义Button如下所示: [ ...

  6. Codeforces 719 E. Sasha and Array (线段树+矩阵运算)

    题目链接:http://codeforces.com/contest/719/problem/E 题意:操作1将[l, r] + x; 操作2求f[l] + ... + f[r]; 题解:注意矩阵可以 ...

  7. ASP.NET|跳转(redirect)到其它站点,提示:当前线程终止。

    在XAF中,如果使用HttpContext.Response.Redirect()进行跳转,会出现”当前线程终止“的报错,跳转失败. 这时候,应该改用WebApplication.Redirect() ...

  8. 用Java实现菱形的打印输出

    import java.util.Scanner; public class dengyao2 { public dengyao2() { super(); } public static void ...

  9. 有关获取session属性时报nullPointException(空指针异常)的解决方案

    一般我们在从session中获取数据时,需要先进行赋值,也就是必须先进行session.setAttribute(String,Object)方法进行赋值,然后我们才能从session中获取内容,但是 ...

  10. git强制覆盖本地文件

    git fetch --all git reset --hard origin/master