目錄
背景關系和工具
步驟
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請求的轉換,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/379460.html
標籤:其他
上一篇:影像鏡像翻轉
