Java后端对接口进行POST请求
封装了一个httpPost处理工具,需要将请求的接口URL,与装有请求参数的list传进来,请求处理之后最终返回String类型的结果。
private String httpPost(String url,List list) {
// 创建HttpClient
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
CloseableHttpClient httpClient = httpClientBuilder.build();
// 创建Post请求
HttpPost post = new HttpPost(url);
//发送post请求 //发票信息采集
CloseableHttpResponse response = null;
String content = "";
try {
post.setEntity(new UrlEncodedFormEntity(list, "UTF-8"));
response = httpClient.execute(post);
//获取请求模型返回的实体
HttpEntity responseEntity = response.getEntity();
content = EntityUtils.toString(responseEntity,"UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
return content;
}
示例
String QUERY_INVOICE_URL = "http://*****";//接口
Map<String,Object> params = new HashMap<>();
params.put("token", token);
//存储参数的BasicNameValuePair集合
List list = new ArrayList();
//获得参数的迭代器
Iterator<Entry<String, Object>> iterator = params.entrySet().iterator();
//迭代参数
while(iterator.hasNext()) {
Map.Entry entry = (Map.Entry)iterator.next();
//BasicNameValuePair通常是用来封装post请求中的参数名称和值;
Object key = entry.getKey();
Object value = entry.getValue();
list.add(new BasicNameValuePair(key.toString(), value.toString()));
}
//传参请求,返回请求结果
String content = httpPost(url+QUERY_INVOICE_URL,list);
if (content != null && !"".equals(content)) {
//转为json对象
JSONObject jsonObject = JSONObject.parseObject(content);
if("000".equals(jsonObject.get("Code"))) {//请求成功
Object data = jsonObject.get("Data");
JSONObject jsonData = JSONObject.parseObject(data.toString());
String invoiceType = (String) jsonData.get("InvoiceType");
int totalAmount = (Integer) jsonData.get("TotalAmount");
}else {
map.put("msg", "未知错误");
return map;
}
//-----其他逻辑处理省略