Fiddler的爬取結果如下:
可見,除了頭信息之外,下面的數據信息顯示成了亂碼。這樣就不能用程序模擬瀏覽器發送數據了。
解決辦法之一就是獲取此字符串的十六進制編碼。將Fiddler切換至Hexview,如下圖所示:
其中藍色部分是header頭信息,黑色字體就是傳送的數據。你還可以右鍵-》取消勾選show header,這樣顯示的便都是數據信息。
我們程序中可以將這個十六進制字符長串轉化成字符串,然後發送到web服務器中。
轉化的程序如下所示:
- public static byte[] GetByteArray(string frame)
- {
- byte[] buffer = new byte[frame.Length / 2]; //注意每兩個十六進制字符代表一個二進制編碼
- for (int i = 0; i < frame.Length / 2; i++)
- {
- int t = GetData(frame[2 * i]) * 16 + GetData(frame[2 * i + 1]);
- buffer[i] = (byte)t;
- }
- return buffer;
- }
- static int GetData(char p) //獲得ASCII編碼
- {
- if (p <= '9' && p >= '0')
- {
- return p - '0';
- }
- else
- {
- return p - 'a' + 10;
- }
- }
1、先選中你要導出的十六進制字符長串-》右鍵-》save selected bytes-》到一文件中。 但是遇到一個問題就是,如何將Fiddler的十六進制字符串拷貝出來,若手動抄寫,很不現實,一來太長,二來怕錯。可以藉助Notepad++或者UltraEdit轉化過來。本人用Notepad++實驗成功:
2、用Notepad++打開此文件,發現仍然是亂碼
3、下載十六進制顯示插件下載:HexEditor_0_9_5_UNI_dll.zip
4、解壓後將HexEditor.dll文件放在Notepad++安裝目錄的plugins目錄下,重啓notepad++
6、選中你要複製的十六進制字符串,複製,然後新建文本,粘貼,就是一個帶有空格的字符串了。去除空格和換行即可。
7、有一種快速去除空格的方法,選中一個空格,ctrl+f,切換到替換標籤,然後點擊替換所有按鈕,這樣將所有的空格都替換成了空字符串,也就刪除了所有空格。