httpclient是一个客户端接口调用框架,实现了http协议的客户端接口调用技术,可以通过模拟测试工具发起接口请求,完成接口调用。
环境搭建:在pom.xml文件里面添加以下标签
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency>
理解什么是接口:
接口的本质:
接口测试流程:
httpclient发送get请求:
代码实现:
package com.mg.api.auto; import java.io.IOException; import org.apache.http.Header; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; /** * httpclient发送get请求 * * @author admin * */ public class GetDemo { public static void main(String[] args) throws ClientProtocolException, IOException { // 准备url String url = "https://tcc.taobao.com/cc/json/mobile_tel_segment.htm"; // 准备测试数据 String tel = "18581232148"; url += ("?tel=" + tel); // 拼接url System.out.println(url); // 请求方式:get HttpGet get = new HttpGet(url); // 发送请求,获取响应 HttpClient httpClient = HttpClients.createDefault(); HttpResponse response = httpClient.execute(get); // 获取响应状态码 int code = response.getStatusLine().getStatusCode(); System.out.println(code); // 获取响应内容 String result = EntityUtils.toString(response.getEntity()); System.out.println(result); // 获取响应头信息 Header[] headers = response.getAllHeaders(); for (Header header : headers) { System.out.println(header); } } }
get请求运行结果:
httpclient发送post请求:
代码实现:
package com.mg.api.auto; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.http.Header; 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.HttpPost; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; /** * httpclient发送post请求 * * @author admin * */ public class PostDemo { public static void main(String[] args) throws ClientProtocolException, IOException { // 接口地址 String loginUrl = "http://49.235.92.12:9000/api/v1/login"; // 接口请求方式:post HttpPost post = new HttpPost(loginUrl); // 接口测试数据 String username = "test"; String password = "123456"; List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>(); parameters.add(new BasicNameValuePair("username", username)); parameters.add(new BasicNameValuePair("password", password)); post.setEntity(new UrlEncodedFormEntity(parameters, "utf-8")); // 发送请求,获取响应 HttpClient client = HttpClients.createDefault(); // 创建默认客户端,相当于按钮 HttpResponse response = client.execute(post); // 状态码 int code = response.getStatusLine().getStatusCode(); System.out.println("状态码:" + code); // 响应报文 String result = EntityUtils.toString(response.getEntity()); // json转为string System.out.println("响应报文:" + result); // 获取响应头信息 Header[] headers = response.getAllHeaders(); for (Header header : headers) { System.out.println("响应头信息:" + header); } } }
post请求运行结果:
常用HttpResponse响应方法:
原文:https://www.cnblogs.com/xiamaojjie/p/12258902.html