OkHttpClient
OkHttpClient
OkHttpClient
是由 Square 公司开发的一个流行的 HTTP 客户端库,它支持同步和异步 HTTP 请求,并提供了易于使用的 API 来处理 HTTP 协议的各个方面,如重定向、缓存、连接池等。
OkHttpClient 进行接口自动化测试
-
Maven添加依赖
<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.9.0</version> </dependency>
-
发送请求
-
创建
OkHttpClient
实例。 -
对于 特殊请求,使用
RequestBody
来设置请求体。 -
创建请求并设置请求的 URL、方法(GET、POST 等)、请求头等。
-
发送请求,获取响应(调用
client.newCall(request).execute()
发送同步请求,或者使用client.newCall(request).enqueue(callback)
发送异步请求。) -
读取响应(
Response
对象)并处理响应体 -
关闭响应
//创建一个OkHttpClient对象发送请求 OkHttpClient okHttpClient = new OkHttpClient(); //构造请求参数-请求体 RequestBody requestBody = new FormBody.Builder() .add("username", Base.USER_NAME) .add("password", Base.PASS_WORD) .add("sex","") .add("sex","") .add("img","") .add("company","") .add("money","") .build(); //构造请求 Request request = new Request.Builder() .url(String.format("%s/v1/user/manager/company",Base.BASE_URL)) .post(requestBody) .build(); //发送请求,获取响应 Response response = okHttpClient.newCall(request).execute(); //打印响应体 String res = response.body().string(); System.out.println(res); //关闭响应 response.close();
-
解析响应体
-
Maven引入依赖
<!-- ObjectMapper依赖项--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.5</version> </dependency>
-
代码编写
//解析响应结果(简单的Json) ObjectMapper objectMapper = new ObjectMapper(); JsonNode jsonNode = objectMapper.readTree(res); token= jsonNode.get("data").get("token").asText(); //提取orderID(复杂的Json) ObjectMapper objectMapper = new ObjectMapper(); JsonNode jsonNode = objectMapper.readTree(res); JsonNode itemNode = jsonNode.get("data").get("item"); int orderId = itemNode.get(0).get("order").get("id").asInt(); System.out.println(orderId);