apache Http post方式

10 篇文章 0 订阅
7 篇文章 0 订阅

public String doPost(String url, Map<String, String> params) {
String response = null;
log.info("url为:" + url + ",params为:" + params);

HttpClient httpClient = new HttpClient();// 创建一个客户端,类似打开一个浏览器
httpClient.getParams().setContentCharset("utf-8");// 设置编码格式

PostMethod postMethod = new PostMethod(url);// 创建一个post方法,类似在浏览器地址栏中输入一个地址

NameValuePair[] postData = new NameValuePair[params.size()];// POST需要通过NameValuePair类来设置参数名称和它所对应的值
// 设置Http Post数据
if (params != null) {
int count = 0;
for (Map.Entry<String, String> entry : params.entrySet()) {
postData[count] = new NameValuePair(entry.getKey(), entry.getValue());
count++;
}
postMethod.addParameters(postData);
}
try {
log.info("执行post方法开始");
httpClient.executeMethod(postMethod);// 执行,类似于回车键
log.info("执行post方法结束");
log.info("method.getStatusCode()=" + postMethod.getStatusCode());
if (postMethod.getStatusCode() == HttpStatus.SC_OK) {
log.info("获取返回值开始");
response = postMethod.getResponseBodyAsString();
log.info("获取返回值结束,response为:" + response);
}
} catch (Exception e) {
log.error("post发生异常:" + e);
e.printStackTrace();
} finally {
postMethod.releaseConnection();// 释放
log.info("释放链接");
}
return response;
}
[b]对于编码方式可以有以下几种方式,应该都可以的,我只用了其中一种:[/b]
httpClient.getParams().setContentCharset("utf-8");// TODO
httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf-8");// TODO

postMethod.getParams().setContentCharset("utf-8");// TODO
postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf-8");// TODO
postMethod.setQueryString(EncodingUtil.formUrlEncode(postData, "utf-8"));// TODO
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值