You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
4.9 KiB
145 lines
4.9 KiB
package com.gitee.sop;
|
|
|
|
import junit.framework.TestCase;
|
|
import org.apache.commons.io.IOUtils;
|
|
import org.apache.http.NameValuePair;
|
|
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
import org.apache.http.client.methods.HttpGet;
|
|
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.BasicHeader;
|
|
import org.apache.http.message.BasicNameValuePair;
|
|
import org.apache.http.util.EntityUtils;
|
|
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.stream.Collectors;
|
|
|
|
/**
|
|
* @author tanghc
|
|
*/
|
|
public class TestBase extends TestCase {
|
|
|
|
/**
|
|
* 发送POST请求
|
|
* @param url
|
|
* @return JSON或者字符串
|
|
* @throws Exception
|
|
*/
|
|
public static String post(String url, Map<String, String> params) {
|
|
CloseableHttpClient client = null;
|
|
CloseableHttpResponse response = null;
|
|
try{
|
|
/**
|
|
* 创建一个httpclient对象
|
|
*/
|
|
client = HttpClients.createDefault();
|
|
/**
|
|
* 创建一个post对象
|
|
*/
|
|
HttpPost post = new HttpPost(url);
|
|
List<NameValuePair> nameValuePairs = params.entrySet().stream().map(entry -> {
|
|
return new BasicNameValuePair(entry.getKey(), String.valueOf(entry.getValue()));
|
|
}).collect(Collectors.toList());
|
|
/**
|
|
* 包装成一个Entity对象
|
|
*/
|
|
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(nameValuePairs, "UTF-8");
|
|
/**
|
|
* 设置请求的内容
|
|
*/
|
|
post.setEntity(entity);
|
|
/**
|
|
* 设置请求的报文头部的编码
|
|
*/
|
|
post.setHeader(new BasicHeader("Content-Type", "application/x-www-form-urlencoded"));
|
|
/**
|
|
* 执行post请求
|
|
*/
|
|
response = client.execute(post);
|
|
/**
|
|
* 通过EntityUitls获取返回内容
|
|
*/
|
|
// Header[] allHeaders = response.getAllHeaders();
|
|
// if (allHeaders != null && allHeaders.length > 0) {
|
|
// System.out.println("----------- headers -----------");
|
|
// for (Header allHeader : allHeaders) {
|
|
// System.out.println(allHeader);
|
|
// }
|
|
// }
|
|
return EntityUtils.toString(response.getEntity(),"UTF-8");
|
|
}catch (Exception e){
|
|
e.printStackTrace();
|
|
}finally {
|
|
IOUtils.closeQuietly(client);
|
|
IOUtils.closeQuietly(response);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* 发送get请求
|
|
* @param url
|
|
* @return JSON或者字符串
|
|
* @throws Exception
|
|
*/
|
|
public static String get(String url, Map<String, String> params) {
|
|
CloseableHttpClient client = null;
|
|
CloseableHttpResponse response = null;
|
|
try{
|
|
/**
|
|
* 创建一个httpclient对象
|
|
*/
|
|
client = HttpClients.createDefault();
|
|
|
|
List<NameValuePair> nameValuePairs = params.entrySet()
|
|
.stream()
|
|
.map(entry -> new BasicNameValuePair(entry.getKey(), String.valueOf(entry.getValue())))
|
|
.collect(Collectors.toList());
|
|
/**
|
|
* 包装成一个Entity对象
|
|
*/
|
|
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(nameValuePairs, "UTF-8");
|
|
//参数转换为字符串
|
|
String paramsStr = EntityUtils.toString(entity);
|
|
url = url + "?" + paramsStr;
|
|
/**
|
|
* 创建一个post对象
|
|
*/
|
|
HttpGet get = new HttpGet(url);
|
|
|
|
/**
|
|
* 执行post请求
|
|
*/
|
|
response = client.execute(get);
|
|
/**
|
|
* 通过EntityUitls获取返回内容
|
|
*/
|
|
// Header[] allHeaders = response.getAllHeaders();
|
|
// if (allHeaders != null && allHeaders.length > 0) {
|
|
// System.out.println("----------- headers -----------");
|
|
// for (Header allHeader : allHeaders) {
|
|
// System.out.println(allHeader);
|
|
// }
|
|
// }
|
|
return EntityUtils.toString(response.getEntity(),"UTF-8");
|
|
}catch (Exception e){
|
|
e.printStackTrace();
|
|
}finally {
|
|
IOUtils.closeQuietly(client);
|
|
IOUtils.closeQuietly(response);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
protected String buildParamQuery(Map<String, String> params) {
|
|
StringBuilder sb = new StringBuilder();
|
|
for (Map.Entry<String, String> entry : params.entrySet()) {
|
|
sb.append("&").append(entry.getKey()).append("=").append(entry.getValue());
|
|
}
|
|
return sb.toString().substring(1);
|
|
}
|
|
|
|
}
|
|
|