提交http請求之python與curl
由於Openstack是python實現wsgi的REST ful架構,在學習和調試的過程中,常常會遇到http請求的提交,於是順手整理下python和curl命令的提交方法。
1.Python篇
在python中有過爬蟲經驗當然很簡單,一個requests庫的問題,比urllib這些好用。
import requests url="https://www.baidu.com/s" headers={'user-agent':"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36"} post_data={'username':"qujun","passwd":"xixi"} parameters={'wd':"abc"} #提交get請求 P_get=request.get(url,params=parameters) #提交post請求 P_post=reuests.post(url,headers=headers,data=post_data)
如果涉及到cookies的話,可以使用requests.Seesion()方法
2.shell中curl
-
常用參數
-A:隨意指定自己這次訪問所宣稱的自己的瀏覽器信息 -b/--cookie <name=string/file> cookie字符串或文件讀取位置,使用option來把上次的cookie信息追加到http request里面去。 -c/--cookie-jar <file> 操作結束后把cookie寫入到這個文件中 -d/ --data <data> HTTP POST方式傳送 -F/--form <name=content> 模擬http表單提交數據 -H/--header <header> 指定請求頭參數 -s/--slient 減少輸出的信息,比如進度 -v/--verbose 小寫的v參數,用於打印更多信息,包括發送的請求信息,這在調試腳本是特別有用。 -o/--output <file> 指定輸出文件名稱 --retry <num> 指定重試次數 -x/--proxy <proxyhost[:port]> 指定代理服務器地址和端口,端口默認為1080 --connect-timeout <seconds> 指定嘗試連接的最大時長 -i 輸出時附帶上返回的HTTP-header -g 關掉URL的通配附解析。如{}、[]這種 -X 指定請求method。如GET\POST\DELETE
#curl發送get,curl請求本身屬於get,也沒找到指定發送參數的參數。。 curl https://www.baidu.com/s?wd=xixi #curl發送post,curl發送post有兩個參數-d和-F 跟據man的結果,區別在於: -d 效果相當與在HTML form填好了信息按下了submit鍵,他會使用 content-type “application/x-www-form-urlencoded”,按照它的使用例子,應該是普通內容post過去。 -F 模擬用戶按下submit鍵后傳輸填好的form。使用Content-Type multi‐part/form-data,按照它的例子一般是在傳送文件的時候使用。 curl -d "username=qujun&passwd=xixi" https://www.baidu.com curl -F "web=@index.html;type=text/html" example.com curl -F profile=@portrait.jpg https://example.com/upload.cgi
【轉自】http://blog.bobozhu.cn/Openstack/HTTP-Python-Curl/
backup 以備查找