當前位置:首頁 » 編程語言 » postpython

postpython

發布時間: 2022-09-28 09:34:13

python用get還是post好

Python用post好,下面是它們的具體區別:

GET產生一個TCP數據包;POST產生兩個TCP數據包。

解釋:

對於GET方式的請求,瀏覽器會把http header和data一並發送出去,伺服器響應200(返回數據);

而對於POST,瀏覽器先發送header,伺服器響應100 continue,瀏覽器再發送data,伺服器響應200 ok(返回數據)。

也就是說,GET只需要汽車跑一趟就把貨送到了,而POST得跑兩趟,第一趟,先去和伺服器打個招呼「嗨,我等下要送一批貨來,你們打開門迎接我」,然後再回頭把貨送過去。

因為POST需要兩步,時間上消耗的要多一點,看起來GET比POST更有效。因此Yahoo團隊有推薦用GET替換POST來優化網站性能。但這是一個坑!跳入需謹慎。為什麼?

1. GET與POST都有自己的語義,不能隨便混用。

2. 據研究,在網路環境好的情況下,發一次包的時間和發兩次包的時間差別基本可以無視。而在網路環境差的情況下,兩次包的TCP在驗證數據包完整性上,有非常大的優點。

3. 並不是所有瀏覽器都會在POST中發送兩次包,Firefox就只發送一次。

所以從本質上來說,post比get好。

更多Python知識,請關註:Python自學網!!

Ⅱ 如何用Python寫一個http post請求

python發送post和get請求
get請求:
使用get方式時,請求數據直接放在url中。
方法一、
importurllib
importurllib2
url="<ahref="http://192.168.81.16/cgi-bin/python_test/test.py?ServiceCode=aaaa""target="_blank">http://192.168.81.16/cgi-bin/python_test/test.py?ServiceCode=aaaa"</a>
req=urllib2.Request(url)
printreq
res_data=urllib2.urlopen(req)
res=res_data.read()
printres
方法二、
importhttplib
url="<ahref="http://192.168.81.16/cgi-bin/python_test/test.py?ServiceCode=aaaa""target="_blank">http://192.168.81.16/cgi-bin/python_test/test.py?ServiceCode=aaaa"</a>
conn=httplib.HTTPConnection("192.168.81.16")
conn.request(method="GET",url=url)
response=conn.getresponse()
res=response.read()
printres
post請求:
使用post方式時,數據放在data或者body中,不能放在url中,放在url中將被忽略。
方法一、
importurllib
importurllib2
test_data={'ServiceCode':'aaaa','b':'bbbbb'}
test_data_urlencode=urllib.urlencode(test_data)
requrl="<ahref="http://192.168.81.16/cgi-bin/python_test/test.py""target="_blank">http://192.168.81.16/cgi-bin/python_test/test.py"</a>
req=urllib2.Request(url=requrl,data=test_data_urlencode)
printreq
res_data=urllib2.urlopen(req)
res=res_data.read()
printres

方法二、
importurllib
importhttplib
test_data={'ServiceCode':'aaaa','b':'bbbbb'}
test_data_urlencode=urllib.urlencode(test_data)
requrl="<ahref="http://192.168.81.16/cgi-bin/python_test/test.py""target="_blank">http://192.168.81.16/cgi-bin/python_test/test.py"</a>
headerdata={"Host":"192.168.81.16"}
conn=httplib.HTTPConnection("192.168.81.16")
conn.request(method="POST",url=requrl,body=test_data_urlencode,headers=headerdata)
response=conn.getresponse()
res=response.read()
printres

Ⅲ python 關於post和get的區別

1.GET是從伺服器上獲取數據,POST是向伺服器傳送數據。
2.在客戶端,GET方式在通過URL提交數據,數據在URL中可以看到,POST方式,數據放置在HTML——HEADER內提交。
3.對於GET方式,伺服器端用Request.QueryString獲取變數的值,對於POST方式,伺服器端用Request.Form獲取提交的數據。

Ⅳ 如何在 Python 中模擬 post 表單來上傳文件

在機器上安裝了Python的setuptools工具,可以通過下面的命令來安裝 poster:

easy_installposter

裝完之後,安裝下面代碼就可以實現post表單上傳文件了:

fromposter.encodeimportmultipart_encode
fromposter.streaminghttpimportregister_openers
importurllib2

#在urllib2上注冊http流處理句柄
register_openers()

#開始對文件"DSC0001.jpg"的multiart/form-data編碼
#"image1"是參數的名字,一般通過HTML中的<input>標簽的name參數設置

#headers包含必須的Content-Type和Content-Length
#datagen是一個生成器對象,返回編碼過後的參數
datagen,headers=multipart_encode({"image1":open("DSC0001.jpg","rb")})

#創建請求對象(localhost伺服器IP地址,5000伺服器埠)
request=urllib2.Request("http://localhost:5000/upload_image",datagen,headers)
#實際執行請求並取得返回
printurllib2.urlopen(request).read()

Ⅳ python怎麼發送post請求

我使用的的python3.5,代碼如下:

fromurllib.parseimporturlencode
fromurllib.requestimporturlopen
defsend_to_server(url,post_data=None):
ifpost_data:
para=urlencode(post_data)
page=urlopen(url,para.encode('utf-8'))#注意這里不encode會報錯
else:
page=urlopen(url)
return(page.read().decode('utf-8'))

Ⅵ python 提交post數據求助

這又不知道你的defput_tickets(item_id,username,password,oid,tickets,active函數裡面的參數到底是怎麼樣子的

你把

try:
return_put_tickets(item_id,username,password,oid,tickets,active)
exceptException:
printu'提交錯誤,重試中....測試版'

這個加個print語句
try:
return_put_tickets(item_id,username,password,oid,tickets,active)
exceptException,e:
printe#這里會列印異常原因
printu'提交錯誤,重試中....測試版'
或者直接把tryexcept去掉看看報錯信息

熱點內容
dnd伺服器ip地址 發布:2024-12-25 23:48:08 瀏覽:196
cad解壓沒有 發布:2024-12-25 23:48:03 瀏覽:14
超星做題腳本 發布:2024-12-25 23:35:14 瀏覽:908
打開加密pdf 發布:2024-12-25 23:24:57 瀏覽:742
動態sql查詢條件 發布:2024-12-25 23:24:56 瀏覽:303
qq群上傳速度 發布:2024-12-25 23:13:09 瀏覽:480
編程工程學 發布:2024-12-25 23:07:28 瀏覽:717
李小璐賈乃亮超級訪問 發布:2024-12-25 22:47:50 瀏覽:719
電信精品寬頻多ip路由如何配置 發布:2024-12-25 22:45:44 瀏覽:384
在linux下安裝python 發布:2024-12-25 22:40:42 瀏覽:339