日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

charles 简单使用

發(fā)布時間:2024/7/23 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 charles 简单使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

From:https://www.cnblogs.com/wenjun145/p/12995535.html

1、下載安裝

1. 下載地址:https://www.charlesproxy.com/latest-release/download.do

?2. 下載之后安裝。按照默認(rèn)next 即可,然后選擇路徑。

3. charles 。PJ:https://www.zzzmode.com/mytools/charles/

按照下方文字填好,點擊生成,會生成一個 jar 包,這個 jar 包是本地 lib 中已經(jīng)存在的,將它替換。

再次重啟即可。。。

2、安裝證書

?在彈出的 證書窗口中 ---> 安裝證書 ---> 本地計算機 ---> 證書存儲( 瀏覽 )---> 手信任的根證書頒發(fā)機構(gòu) ---> 下一步 ---> 完成

  • http 代理:菜單欄 Proxy ---->?勾選 "Windows Proxy"?,抓取電腦本地發(fā)送的請求,展開相關(guān)域
  • https 代理:菜單欄 Proxy --->?SSL Proxying Settings ---> 勾選 "Enable SSL Proxying" 。
    ? ? 允許所有SSL代理:Add ---> Host : * 和 Port : 443??。這樣設(shè)置就可以使得所有帶鎖請求允許被操作

移動端配置

  • 查看 Charles 端口:Proxy --->?Proxy Settings --->?Port:8888,勾選 "Enable transpare proxying"
  • 查看電腦 IP:Help --->?Local IP Address
  • 手機端 WiFi 配置:WiFi --->?修改網(wǎng)絡(luò) --->?代理?--->?然后輸入電腦IP、端口(代理端口8888)
  • 返回 Charles,界面彈出連接 IP 提示,點擊 Allow --->?完成配置

設(shè)置好代理后,需要安裝 charles 的 證書,安裝好證書后,才能解密 https 的流量。。。

?

3、Charles 基本功能

Charles 工具的幾個重要按鈕:

  • 掃帚 圖標(biāo):清屏
  • 圓點 圖標(biāo):抓包 / 停止抓包
  • 鎖 圖標(biāo):開始 / 停止? SSL 代理
  • 烏龜 圖標(biāo):模擬弱網(wǎng)絡(luò)( 流量控制 )
  • 六邊形 圖標(biāo):斷點
  • 鋼筆圖標(biāo):構(gòu)造一個請求,然后發(fā)送,即模擬請求
  • 刷新 圖標(biāo):重新發(fā)送選中的請求
  • 對勾:
  • 工具 圖標(biāo):一些工具。斷點,映射,篡改,DNS 洪泛
  • 設(shè)置 圖標(biāo):設(shè)置

界面 Structure 模式( 按域名網(wǎng)站顯示 ):

  • 以域名劃分請求信息,便于定位需求分析和處理的數(shù)據(jù)
  • 請求的數(shù)據(jù)結(jié)構(gòu)一目了然
  • 關(guān)鍵字段:Overview 即?概要,?Contents :即?內(nèi)容

Sequence 模式( 按請求順序顯示 ):

  • 以數(shù)據(jù)請求速度快慢的順序去執(zhí)行,請求快的就在前面顯示,可以清晰的看到全部請求,以及請求中的資源請求、圖片、文本、音樂等。其中,Filter 可以過濾請求

過濾抓取請求

開始抓包后,隨著時間的推移,抓取到的網(wǎng)絡(luò)包越來越多,這是我們可以使用過濾功能,來過濾出我們想要的網(wǎng)絡(luò)請求。

在Proxy -> Recording Settings?中可以設(shè)置網(wǎng)絡(luò)包的過濾選項。

過濾選項中有Include?和?Exclude?兩種選項。只有當(dāng)?Include?為空時,Exclude?中的設(shè)置才會生效。過濾條件支持通配符。

模擬慢速網(wǎng)絡(luò)

在做iPhone開發(fā)的時候,我們常常需要模擬慢速網(wǎng)絡(luò)或者高延遲的網(wǎng)絡(luò),以測試在移動網(wǎng)絡(luò)下,應(yīng)用的表現(xiàn)是否正常。Charles對此需求提供了很好的支持。

在Charles的菜單上,選擇"Proxy"->"Throttle Setting"項,在之后彈出的對話框中,我們可以勾選上“Enable Throttling”,并且可以設(shè)置Throttle Preset的類型。如下圖所示:

修改網(wǎng)絡(luò)包

修改歷史請求

可以將歷史的請求修改后,再次發(fā)送。

只需選中某個請求,點擊上方工具欄中的藍(lán)色鋼筆按鈕(第四個),就可以進(jìn)行修改。完成修改后,點擊下方的Execute執(zhí)行請求。

添加斷點

窗口上方的工具欄中,第四個按鈕就是Enable BreakPoints,用來啟用或禁用斷點。也可以在 Proxy -> BreakPoints Setting中設(shè)置更多具體內(nèi)容。

在Charles中可以像調(diào)試程序一樣添加斷點。方法是右鍵點擊左側(cè)窗口的某個請求,選擇BreakPoints添加斷點。這樣當(dāng)這個請求發(fā)出或者收到response的時候,就會先被Charles攔截下來,并觸發(fā)斷點。

觸發(fā)斷點后,可以對斷點的網(wǎng)絡(luò)包進(jìn)行各種編輯,然后再繼續(xù)。點擊Execute就可以繼續(xù)。

同時,也可以在Proxy -> BreakPoints Setting設(shè)置斷點的各種規(guī)則。例如,是在request的時候觸發(fā)還是 response的時候。

由于設(shè)置斷點時,Charles是先攔截下整個網(wǎng)絡(luò)包,再觸發(fā)斷點,當(dāng)網(wǎng)絡(luò)包比較大的時候,常常會導(dǎo)致應(yīng)用超時,觸發(fā)網(wǎng)絡(luò)錯誤的警告,因此,自動地根據(jù)規(guī)則修改網(wǎng)絡(luò)包有時顯得尤為重要。這就是下面要說的篡改。

攔截后可以修改post參數(shù)

然后可以修改Response,不用去麻煩測試修改數(shù)據(jù),

設(shè)置斷點。在請求位置右鍵,選擇Breakpoints

然后選擇Proxy的Breakpoint Settings選項,點擊進(jìn)入設(shè)置

點進(jìn)去可以看到我們添加到Breakpoint 的所有請求,雙擊我們要改的那個請求,如果想斷請求,勾選Request,想斷響應(yīng),勾選Response

設(shè)置后點擊OK,關(guān)閉上面的彈窗,下面的彈窗中我們勾選想斷的請求,點擊OK

下次請求就可以斷請求或者響應(yīng)了

改寫后點擊 Execute執(zhí)行 ,注意改的時候,客戶端一般有超時限制(過了超時時間就不會等服務(wù)端的返回數(shù)據(jù)了),所以一般只適用改動較小的測試或者異常測試

篡改(Rewrite)

Rewrite?是按照一組事先設(shè)置的規(guī)則,篡改特定的網(wǎng)絡(luò)包中的數(shù)據(jù)。

在?Tools -> Rewrite?中,選中Enable Rewrite?來開啟?Rewrite。

Rewrite

勾選 Debug in Error Log 選項,就能在 Charles 控制臺中看到 Rewrite 的記錄。

首先要在右側(cè)的規(guī)則列表中添加一個新規(guī)則。在新規(guī)則中添加要Rewrite的Location,然后再下方添加具體的篡改規(guī)則。規(guī)則中可以使用通配符。

這樣稍后匹配條件的網(wǎng)絡(luò)包到達(dá)的時候,Charles就會自動將其中的內(nèi)容按規(guī)則篡改。

示例:比如 192.168.1.2:8888/a/b/test ?與192.168.1.3:8888/a/b/test ?兩個請求就要分別映射,而 Rewrite 就可以解決這個問題 ,可以把所有的請求url為/a/b/test的請求都構(gòu)造成同一個數(shù)據(jù)。

方法:

  • 1、入口:Tools-》Rewrite
  • 2、勾選 Enable Rewrite,點擊Add
  • 3、Name根據(jù)自己情況隨便寫,Add后Path路徑填寫我們請求的url,點擊OK

然后Add返回值,選擇response,Type選擇body,直接把要構(gòu)造成的json串寫到Value中,Ok

下次請求,就會發(fā)現(xiàn)192.168.1.2:8888/a/b/test ?與192.168.1.3:8888/a/b/test ?兩個請求都返回了我們自己的json數(shù)據(jù)。

rewrite還可以批量修改我們的請求參數(shù),比如把所有的上傳的did參數(shù)都由ANDROID_4af16d720602b56改為ANDROID_123456123456,我們可以按照下圖構(gòu)造:

其中上面部分具體內(nèi)容為:

下半部分具體內(nèi)容為:

這樣下次請求,我們的did參數(shù)就變?yōu)槲覀兿胍腁NDROID_123456123456了。這種方法對 ?有要求手機等為新設(shè)備才執(zhí)行某策略的功能點很適用。

映射 Map

Charles?提供的映射功能可以將本地文件或者遠(yuǎn)程的服務(wù)器作為某個請求的?Response。可以方便地進(jìn)行一些特殊的測試。

  • Map Local。本地映射。在 Tools -> Map Local。可以選擇一個本地文件作為某個請求的Response,并且 Charles會幫你封裝好Response。
  • Remote Remote。遠(yuǎn)程映射。和本地映射的功能類似,只是將數(shù)據(jù)源換成了遠(yuǎn)程服務(wù)器。相當(dāng)于將請求交給另一個服務(wù)器處理

在主機名上右鍵,選擇 map remote

在彈出的彈窗中,填寫要映射到的地址

映射本地。在一個請求上 右鍵 ---> 選擇map local

模擬弱網(wǎng)

Charles 還可以模擬不同網(wǎng)速環(huán)境,可以很方便地測試應(yīng)用在網(wǎng)絡(luò)差的情況下的bug。

在 Proxy -> Throttle Settings 中勾選 Enable Throttling,或者直接點擊窗口上方的工具欄中的??烏龜🐢按鈕??就可以啟用,這個按鈕十分形象。

在Proxy -> Throttle Settings 中,添加要針對的Locations,如果選中Only for selected hosts,并且Locations中有數(shù)據(jù),則只有 Locations列表中的請求會被限速,否則會對全局限速。在Throttle Configuration中可以對網(wǎng)絡(luò)環(huán)境進(jìn)行十分詳細(xì)的配置,包括網(wǎng)絡(luò)的穩(wěn)定程度、網(wǎng)速、環(huán)境等。

SSL 代理

在使用 Charles 的過程中,我們會發(fā)現(xiàn),只有未加密的 Http 請求才能被Charles 正確的解析出數(shù)據(jù),其余的Https 請求都處于加鎖的狀態(tài),但我們不可避免的需要抓取 Https 的包。SSL代理就可以完美解決這個問題。

要啟用 SSL 代理,先要在 Proxy -> SSL Proxying Settings 中勾選 Enable SSL Proxying,然后配置要代理的 Location,一般可以直接填星號,以匹配所有請求。

安裝 Charles 的證書

Charles中的HTTPS代理的原理是,Charles 充當(dāng)一個中間人,針對目標(biāo)服務(wù)器動態(tài)地生成一個使用Charles根證書(Charles CA Certificate)簽名的證書;請求發(fā)生的時候, Charles會接收web 服務(wù)器的證書,而把自己生成的證書給客戶端看。

因此在在使用Charles作為HTTPS代理時,客戶端在請求HTTPS接口的時候會彈出安全警告,提示Charles根證書不被信任。我們需要添加Charles根證書為信任證書中。

方法如下:

  • 1、點擊Help -> SSL Proxying,根據(jù)被抓包設(shè)備的類型,來選擇對應(yīng)的安裝選項(如果是 OSX 就直接選擇Install Charles Root Certificate);
  • 2、如果是iOS真機,則會彈出下面的提示,此時不用按上面的提示來配置代理,只要按照上文的步驟配置過代理了就可以了。然后在Safari中打開chls.pro/ssl安裝Charles的證書,就 OK 了。

設(shè)置好?SSL?代理后,HTTPS?請求就統(tǒng)統(tǒng)解鎖啦!

注意:iOS9 以上系統(tǒng)要使用 Charles 作為 SSL 代理的話要關(guān)閉 APP Transport Security ,關(guān)閉方法為在 APP的 info.plist 文件添加以下key:

<key>NSAppTransportSecurity</key> <dict><key>NSAllowsArbitraryLoads</key><true/> </dict>

Charles 是一個強大的抓包調(diào)試工具,它的功能遠(yuǎn)不止這些

配合 Postman

Postman是一個測試API的利器。

總結(jié)

以上是生活随笔為你收集整理的charles 简单使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。