package apitest_test;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
public class HttpUtil {
public static String result;
public static String doPost(String url,Map<String, String>params) {
//指定接口请求方式为
HttpPost post=new HttpPost(url);
// basicNameValuePair 用来封装post请求参数,一般都是用list集合,不用map
List<BasicNameValuePair> parameters=new ArrayList<BasicNameValuePair>();
// 取出map中所有的参数名
Set<String>keys=params.keySet();
// for循环取出所有map中的集合并将值放到list(BasicNameValuePair)集合中
for(String name : keys) {
String value=params.get(name);
parameters.add(new BasicNameValuePair(name, value));
}
//准备请求头数据(如果有必要,比如cookie。centent-type等)
post.addHeader("deviceId", "127.0.0.1");
post.addHeader("deviceType", "TYPE_WECHAT");
post.addHeader("user_token", "");
post.addHeader("timestamp", "1619503923");
System.out.println(url);
//将数据放进接口里面设置编码
try {
post.setEntity( new UrlEncodedFormEntity(parameters, "utf-8"));
//发起请求,获取接口响应信息(状态码,响应报文,或某些特殊响应头数据 )
HttpClient client=HttpClients.createDefault();
HttpResponse httpreponse=client.execute(post);
//状态码
int code=httpreponse.getStatusLine().getStatusCode();
System.out.println(code);
//响应报文
result=EntityUtils.toString(httpreponse.getEntity());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
// 建立get请求方式封装,可直接调用
public static String DoGet(String url,Map<String, String>parameter){
int make=1;
// 循环定义url的值
Set<String> keys=parameter.keySet();
for(String name : keys) {
if(make==1) {
url+=("?"+name+"="+parameter.get(name));
}
else{
url+=("&"+name+"="+parameter.get(name));
}
make++;
}
// 请求接口的类型
HttpGet get=new HttpGet(url);
System.out.println(url);
// 发送请求
HttpClient httpclient=HttpClients.createDefault();
// 拿到响应数据
HttpResponse response;
try {
response = httpclient.execute(get);
// 响应数据的响应状态
int code=response.getStatusLine().getStatusCode();
System.out.println(code);
// 返回数据
result=EntityUtils.toString(response.getEntity());
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
}