涉及到網絡編程時,curl就是一個超好的工具,可以測試驗證很多case,發現問題。
一些常用選項。
-k 忽略ssl/tsl證書認證錯誤
-X POST/GET 指定方法
-H 設置請求頭 -H "cookie: sess=xyabcdzilkll-",這個選項應該是最常用的之一
--resolve 從指定的dns cache設置中解析host對應的ip地址, --resolve "mysite.com:443:127.0.0.1"
-d --data POST請求帶的數據 -d "phone=19912345433&password=xyzdf3dfkldfa="
-p --proxy 代理,比如開了fiddler、charles之類的抓包工具,想看下發出去的數據,可以設置 -p "127.0.0.1:8888"
-o 設置輸出文件
fiddler抓包工具可以將請求導出爲一個腳本,可以將一個請求保存下來長期使用測試,也可以按需修改一些參數進行測試,驗證一些想法,這樣就很方便進行網絡調試。
charles做爲一個fiddler的alternative,在易用程度上要差一些,比如要看https請求的內容,還需要手動把ip/host加入到設置中,纔會進行ssl/tsl的解析,然後才能看具體請求的完整內容。而且還收費。
wireshark功能更強大,不過看https的數據有些麻煩,不是很好過濾,貌似是用tcp.dstPort=443來搞。可以通過請求中的字符串進行搜索,這點很贊。不能攔截請求、修改回覆,不夠完美。
不過要注意直接運行腳本是好的,複製粘貼到shell中可能就不行,因爲文件的編碼的是utf8,而命令行可能就是gbk了。
在一些場景下,可能需要curl庫來實現某些需求,比如http dns,就需要用到curl的resolve功能。