封装post请求
封装post的请求
1、通过httpclient发送post请求进行连接
2、对于post请求,包含两个部分,url和要传的参数
3、url我们在测试的时候是知道的,关键是参数如何进行传输。对于post请求,我们使用NameValuePair类型进行传输。
4、释放连接
package test1; 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.HttpPost; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.testng.annotations.Test; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by daojia on 2017-6-20. * 模拟httpsend请求,传入的参数有url以及附带的参数,返回String类型 */ public class httptest { public String send(String url,Map<String,String> map) throws IOException { String result = ""; //创建httpclient对象 CloseableHttpClient client = HttpClients.createDefault(); //创建post请求对象 HttpPost httpPost = new HttpPost(url); //装填参数 List<NameValuePair> parm = new ArrayList<NameValuePair>(); if(map != null) { for(Map.Entry<String,String> me : map.entrySet()) { parm.add(new BasicNameValuePair(me.getKey(),me.getValue())); } } System.out.println("请求参数"+parm.toString()); httpPost.setEntity(new UrlEncodedFormEntity(parm,"utf-8")); System.out.println("请求链接"+httpPost.toString()); //执行请求 CloseableHttpResponse response = client.execute(httpPost); result=response.toString(); System.out.println("请求链接"+result);
response.close(); return result; }