本簡易教程,不講解抓包知識及一些比較理論性的知識,不懂的請自行百度學習; 該教程主要講述aardio的http庫的POST及GET操作方面涉及的函數用法,及分析過程,按步驟貼出相關代碼(不是完整程序代碼);目的讓你們在理解學習的知識基礎上,自己動手寫一個滿足自己需求的完整程序出來。而不是簡單的COPY! 後台提交需要分析數據及不斷調試,比較耗費時間及精力,一般建議還請採用模擬操作,方便快捷。 一. 基礎知識 1.1 編碼知識
所以我們必須對數據轉換為有效的ASCII字符格式,也就是URL編碼。 在aardio裡,轉換URL編碼的函數庫就是inet.url
示例: import inet.url
936代表是簡體中文gb2312 ,而950代表繁體中文,65001就是我們說的 UTF-8編碼了. POST/GET操作時,必須要瞭解網頁的編碼,根據實際需要進行編碼轉換,否則你會看到亂碼的字符或提交不成功。 在aardio裡,默認的核心string庫就有轉換函數。
//string.fromto 函數原型 該函數首先將fromcp編碼的字符轉換為unicode編碼,再從unicode編碼轉換為tocp編碼。 在任何兩種codepage(包括UTF8)之間轉換編碼都應當先轉換為unicdoe編碼 順序為: codepage1-->unicode->codepage2 示例: var str_utf8 = "E鉶庡崱閫氬浘鍍?"//utf-8
在aardio裡,由web.json庫提供json字符串的解碼和編碼,所謂解碼就是把json字符串轉換成aardio裡的table,所以取值的話按table的方法即可;而編碼則是把aardio裡的table序列化成json字串。
1.2 HTTP 頭知識 POST/GET操作,需 對HTTP協議有一定瞭解, 詳細的知識可以百度學習,這裡只是簡單列舉一些相關的HTTP頭知識; 透過抓包,可以看到下面的數據:
Accept-Charset: 客戶機採用的編碼 Accept-Encoding: 客戶機支持的數據壓縮格式 Accept-Language: 客戶機的語言環境 Host: 訪問的主機名 Referer: 請求來自於哪個頁面 User-Agent: 瀏覽器相關信息 Cookie:瀏覽器暫存服務器發送的信息 Connection: 請求完後關閉或保持連接 Date: 請求網站的時間
Content-Encoding: 服務器發送的壓縮編碼方式 Content-Length:服務器發送顯示的字節碼長度 Content-Language: 服務器發送內容的語言和國家名 Content-Type: 服務器發送內容的類型和編碼類型 Content-Disposition: 服務器控制瀏覽器發下載方式打開文件 Set-Cookie:服務器發送Cookie相關的信息 Date: 響應網站的時間
302(Found): 重定向,發現新的連接請求信息 304 (NOT MODIFIED): 該資源在上次請求之後沒有任何修改。這通常用於瀏覽器的緩存機制。 401 (UNAUTHORIZED): 客戶端無權訪問該資源。這通常會使得瀏覽器要求用戶輸入用戶名和密碼,以登錄到服務器。 403 (FORBIDDEN): 客戶端未能獲得授權。這通常是在401之後輸入了不正確的用戶名或密碼。 404 (NOT FOUND): 在指定的位置不存在所申請的資源。 |
|