【轉】提交http請求之python與curl


 

提交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 以備查找

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM