Charles.png
<1> 使用“青花瓷”
- 手機(jī)和攔截的電腦要在同一個局域網(wǎng)中;
- 將手機(jī)上網(wǎng)的代理朊務(wù)器設(shè)置為電腦的IP,端口8888
- 看上部列表左側(cè)可以知道請求方法類型乙漓,GET & POST
- 在下面點(diǎn)Response可以看到朊務(wù)器的響應(yīng)結(jié)果捏雌,通常圖片都是異步加載朱转,一個Response對應(yīng)一個圖像
- 點(diǎn)下面的Requset可以看到發(fā)送給朊務(wù)器的請求
日常跟蹤時镣衡,可以根據(jù)Response判斷哪些請求是我們需要的生蚁,然后夊制對應(yīng)的URL即可崩哩。
青花瓷只是跟蹤數(shù)據(jù)巡球,是一個抓包工具,上能依賴青花瓷去開發(fā)完整的應(yīng)用程序邓嘹,在日常工作中酣栈,這些JSON都是由公司后端程序員提供的。
<2>使用 HTTPScoop
- 首先確保你的機(jī)器安裝了Java的SDK汹押,沒有可以去官網(wǎng)下載矿筝。
- 安裝教程:http://www.7do.net/resources-2728-1-1.html
使用httpScoop.png
- 保證 iphone/android 和電腦在同一個網(wǎng)段2. 在 iphone Setting 設(shè)置電腦的 ip 地址 這里端口是隨意寫的 不過要保證>1024
在同一局域網(wǎng).png
- 啟動 paros(首先你要把它下載下來,這個是個文件棚贾,使用它很簡單窖维,只需點(diǎn)擊paros文件里面的可執(zhí)行文件 run ,過幾秒就會彈出下面界面了)我把paros放在了:https://github.com/ChengHuiHe/paros
啟動軟件.png
- 點(diǎn)擊代理 ,輸入和 iphone 對應(yīng)的 ip 和端口
手機(jī)和電腦IP一致哦!.png
- 然后運(yùn)行 iphone 上程序就可以看到數(shù)據(jù)包了
第一行的GET就是數(shù)據(jù)了.png
數(shù)據(jù)分析:GET 協(xié)議分析
把GET 請求的數(shù)據(jù)復(fù)制下來:
“http://wbapp.mobile.sina.cn/interface/ninesquares/getsearchicon.php?udid=e4:ce:8f:7c:9c:41&uid=&wm=b207&posid=pos4f9ba29064868&from=6030093012”
- 這就是網(wǎng)址,可以直接放在瀏覽器中顯示 也可以使用 ASI 直接獲取
POST 協(xié)議分析
對于 POST 比較復(fù)雜一些妙痹。里面的參數(shù)需要你使用程序參數(shù)才能使用,比如http://api.maopao.com:80/maopao/v2.0/postlocationdeviceid=1dfe9be1f679d04ebcec86cf74d41813bcbc0daf&geolat=40.0340&geolong=116.3441
類似代碼如下:
- (void) foo {
NSURL *url = [NSURLURLWithString:@"http://api.maopao.com:80/maopao/v2.0/postlocation"];
ASIFormDataRequest r = [ASIFormDataRequestrequestWithURL:url];
//deviceid=1dfe9be1f679d04ebcec86cf74d41813bcbc0daf&geolat=40.0340&geolong=116.3441 [rsetPostValue:@"1dfe9be1f679d04ebcec86cf74d41813bcbc0daf"forKey:@"deviceid"];
[rsetPostValue:@"40.0340" forKey:@"geolat"]; [r setPostValue:@"116.3441" forKey:@"geolong"]; [r setDelegate:self]; [r startAsynchronous];
}
對于圖片上傳使用
- (void)setData:(id)data withFileName:(NSString)fileName andContentType:(NSString *)contentTypeforKey:(NSString *)key
注意如果有請求頭的辦法:諸如下面這些就是請求頭:
POST http://api.maopao.com:80/maopao/v2.0/postlocation HTTP/1.1Host:
api.maopao.com:80UserAgent:iPhone:6.0.1/maopaopaipai:1.3.6/source:mppp_I_app/deviceinfo:iPhone3,1Proxy-
Connection: keep-alive
Content-Type: application/x-www-form-urlencodedContent-Length: 81Accept-Language: zh-cnAccept: /
Connection: keep-aliveUser-Agent: mppp/1.3.6 CFNetwork/609 Darwin/13.0.0 Paros/3.2.13
給 ASI 設(shè)置請求頭 - 代碼如下:
r.requestHeaders = [NSMutableDictionarydictionaryWithObjectsAndKeys:
@"api.maopao.com:80",
@"Host",@"iPhone:6.0.1/maopaopaipai:1.3.6/source:mppp_I_app/deviceinfo:iPhone3,1",
@"UserAgent",
@"mppp/1.3.6 CFNetwork/609 Darwin/13.0.0Paros/3.2.13", @"User-Agent",
nil];