public class AutoTester {
@Test
public void post() throws ClientProtocolException, IOException{
/*
* 1.指定请求方法:post
* 2.接口url:http://39.108.136.60:8085/lmcanon_web_auto/mvc/member/api/member/login
* http://47.107.168.87:8087/lmcanon_web_auto/mvc/member/api/member/login
* 3.参数:phone=18306105517&password=92ueiwcbsbxuspwdwqqeu29e&type=1
* 4.发数据包
* 5.查看响应
*/
//1.请求地址
String url ="http://47.107.168.87:8087/lmcanon_web_auto/mvc/member/api/member/login";
//2.生成post请求
HttpPost post =new HttpPost(url);//创建一个Post对象
//post请求的参数放在哪儿?--->设置Post请求参数---》请求体中间
//创建一个容器,保存每个参数
ArrayList<NameValuePair> parameters = new ArrayList<NameValuePair>();//因为是以键值对的方式体现的参数,所以要用NameValuePair:名值对
parameters.add(new BasicNameValuePair("nickname","111111111"));
parameters.add(new BasicNameValuePair("password","e10adc3949ba59abbe56e057f20f883e"));
//创建一个原生form表单的请求体对象
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters);
//设置post请求请求体
post.setEntity(entity);
//发数据包(HTTP发包客户端具备这样的功能:浏览器,postman,jmeter,fiddler,soapui,app)
//创建一个HTTP发包客户端-->CloseableHttpClient可供关闭的http客户机:CloseableHttpClient类,
//createDefault()是默认的具备发送http对象的方法
CloseableHttpClient httpclient = HttpClients.createDefault();
//发送数据包--->获得响应(创建一个响应)
CloseableHttpResponse response = httpclient.execute(post);
//获得响应,关注什么信息???
//1)响应行
StatusLine line = response.getStatusLine();
System.out.println(line.getProtocolVersion());
System.out.println(line.getStatusCode());
System.out.println(line.getReasonPhrase());
//2)响应头
Header[] headers = response.getAllHeaders();
for (Header header : headers){
System.out.println(header.getName()+":"+header.getValue());
}
//3)响应体
HttpEntity respEntity = response.getEntity();
//EntityUtils是处理请求体,响应体的一个工具,可以将数据直接转化成字符串
String respResult = EntityUtils.toString(respEntity);
System.out.println(respResult);
}
}
用testNG来测试这个用例,但是并没有返回给我响应头和响应体,与fiddler抓到的响应有差
正在想如何解决