教你两分钟Mock OkHttp网络请求(以CSDN官网请求为例)

目录

上下文和工具

步骤

Charles抓包

Postman Mock

 OKHttp发起请求

拓展知识

关于Http状态码

 关于OkHttp

总结


​​​​​​​上下文和工具

最近遇到一个case:将H5网页中发起的请求替换为Android Native发起的请求。限制条件为后端无此接口的定义。在这里我们以CSDN官网请求为例进行说明。

如何快速Mock该请求呢?共分为三步:Charles抓包、Postman Mock、OKHttp发起。

所需工具如下:

1.Charles:V4.6.1版本;
2.PostMan:9.4.0版本;
3.OKHttp:com.squareup.okhttp3:okhttp:3.10.0.3

步骤

Charles抓包

步骤1:打开Charles;

步骤2:打开CSDN官网,查看Charles;

步骤3:右键该网络请求->点击"Copy cURL Request"

Postman Mock

步骤1:打开PostMan,点击import;

步骤2:选择Raw Text,粘贴,点击Continue;

 步骤3:点击Send发送网络请求;将该请求转换为OKHttp代码;复制即可。

 除了OKHttp请求之外,还支持Swift、C、PHP等。

 OKHttp发起请求

复制粘贴即可&子线程发起网络请求,Header内容可调整。

OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
Request request = new Request.Builder()
  .url("https://www.csdn.net/")
  .method("GET", null)
  .addHeader("Host", "www.csdn.net")
  .addHeader("cache-control", "max-age=0")
  .addHeader("sec-ch-ua-mobile", "?0")
  .addHeader("sec-ch-ua-platform", "\"macOS\"")
  .addHeader("upgrade-insecure-requests", "1")
  .addHeader("user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36")
  .addHeader("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9")
  .addHeader("sec-fetch-site", "none")
  .addHeader("sec-fetch-mode", "navigate")
  .addHeader("sec-fetch-user", "?1")
  .addHeader("sec-fetch-dest", "document")
  .addHeader("accept-language", "zh-CN,zh;q=0.9")
  .addHeader("Cookie", "dc_session_id=10_1639217475457.541704; dc_sid=37cb10cf8843223cb9ebca11d00e6de9; uuid_tt_dd=10_19725877220-1639217475457-552295; csrfToken=tNX3XF6y0VyK1WNGp4j87-2_")
  .build();
Response response = client.newCall(request).execute();

拓展知识

关于Http状态码

 关于OkHttp

如何发起Get请求:

OkHttpClient client = new OkHttpClient();String run(String url) throws IOException {
  Request request = new Request.Builder()
      .url(url)
      .build();

  try (Response response = client.newCall(request).execute()) {
    return response.body().string();
  }
}

如何发起Post请求:

public static final MediaType JSON
    = MediaType.get("application/json; charset=utf-8");OkHttpClient client = new OkHttpClient();String post(String url, String json) throws IOException {
  RequestBody body = RequestBody.create(JSON, json);
  Request request = new Request.Builder()
      .url(url)
      .post(body)
      .build();
  try (Response response = client.newCall(request).execute()) {
    return response.body().string();
  }
}

总结

本文以Mock CSDN官网请求为例,完成了Charles抓包、Postman mock、OkHttp发起三步骤。教你两分钟搞定H5请求到Native请求的转换。

猜你喜欢

转载自blog.csdn.net/weixin_38244174/article/details/121877462
今日推荐