同步第三方接口

描述:
  POST方式请求接口
 使用Apache的HttpClient发送GET和POST请求的步骤如下: 
1. 使用帮助类HttpClients创建CloseableHttpClient对象. 
2. 基于要发送的HTTP请求类型创建HttpGet或者HttpPost实例. 
3. 使用addHeader方法添加请求头部,诸如User-Agent, Accept-Encoding等参数. 
4. 对于POST请求,创建NameValuePair列表,并添加所有的表单参数.然后setEntity()把它填充进HttpPost实体. 
5. 通过执行此HttpGet或者HttpPost请求获取CloseableHttpResponse实例 
6. 从此CloseableHttpResponse实例中获取状态码,错误信息,以及响应页面等等. 
7. 最后关闭HttpClient资源.

详细步骤:

1.第三方接口文档,需要传递的有URL,参数如下



2.使用CloseableHttpClient和HttpPost和第三方工程进行交互。代码如下

package com.cn.utils.sync;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;


public class Toolkit {
private static Log log = LogFactory.getLog(Toolkit.class);
public static String sendPost(String url, Map<String, Object> params) throws Exception {
if ((url == null) || ("".equals(url))) {
return null;
}
String responseData = "";
CloseableHttpClient httpClient = HttpClients.createDefault();// 创建一个CloseableHttpClient实例
// 创建httppost 
HttpPost httpPost = new HttpPost(url);
// 创建参数队列  
List<BasicNameValuePair> paramList = new ArrayList<BasicNameValuePair>();
if (params != null && params.size() > 0) {
for (String key : params.keySet()) {
paramList.add(new BasicNameValuePair(key, params.get(key).toString()));//get(key)-->得到value值
}
}
//设置编码集,将参赛填充到HttpPost
httpPost.setEntity(new UrlEncodedFormEntity(paramList, "UTF-8"));
//执行post请求 
HttpResponse response = httpClient.execute(httpPost);
try{
//获取响应消息实体 
HttpEntity entity = response.getEntity();
//响应状态  
log.info("status:" + response.getStatusLine());  
            //判断响应实体是否为空 
if (entity != null) {
responseData = EntityUtils.toString(entity, "UTF-8");//取出服务器端应答的字符串
}
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
log.info("URL: " + url);
log.info("PARAMS: " + params);
log.info("RESPONSE_DATA: " + responseData);
log.info("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
}finally{//释放资源
httpClient.close();
}

return responseData;
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值