python的get和post方式請求詳解

2022-08-02 12:21:13 字數 1996 閱讀 7932

1.使用get方式時,url類似如下格式:

index.jsp?id=100&op=bind

get報問頭如下:

2.使用post方式時,post方法將請求引數封裝在http請求資料中,以名稱/值的形式出現,可以傳輸大量資料,可用來傳送檔案。

post報文頭如下:

在http頭後邊有一空行,空行後邊接著傳送post資料。空行通知伺服器以下不再有請求頭。

3.可以發現的一點是,無論是post還是get方式,他們所傳遞的資料都要進行url編碼

4. url編碼是一種瀏覽器用來打包表單輸入的格式。

瀏覽器從表單中獲取所有的name和其中的值 ,將它們以name/value引數編碼(移去那些不能傳送的字元,將資料排行等等)作為url的一部分或者分離地發給伺服器。

不管哪種情況,在伺服器端的表單輸入格式樣子象這樣:

thename=ichabod+crane&gender=male&status=missing& ;headless=yes

5.url編碼遵循下列規則:

1.每對name/value由&;符分開;

2.每對來自表單的name/value由=符分開。

3.如果使用者沒有輸入值給這個name,那麼這個name還是出現,只是無值。

4.任何特殊的字元(就是那些不是簡單的七位ascii,如漢字)將以百分符%用十六進製制編碼,

6.所以,當我們使用get或者post傳送資料之前,我們都需要對資料進行url編碼。

urllib庫提供了乙個函式來實現url的編碼:

search=urllib.urlencode()
輸出為:

'q=python'
7.ok,現在正式開始python的get和post請求:

#!/usr/bin/python    

#-*-coding:utf-8-*-

# 進行表單提交 小項 2008-10-09

import httplib,urllib; #載入模組

#定義需要進行傳送的資料

params = urllib.urlencode();

#定義一些檔案頭

"connection":"keep-alive","referer":""};

#與**構建乙個連線

#開始進行資料提交 同時也可以使用get進行

conn.request(method="post",url="/newsadd.asp?action=newnew",body=params,headers=headers);

#返回處理後的資料

response = conn.getresponse();

#判斷是否提交成功

if response.status == 302:

print "發布成功!^_^!";

else:

print "發布失敗\^0^/";

#關閉連線

conn.close();

python 關於post和get的區別

1 url解析 基本格式 schema host port path query string anchor scheme 指定低層使用的協議 例如 http,https,ftp host http伺服器的ip位址或者網域名稱 port http伺服器的預設埠是80,這種情況下埠號可以省略。如果使用...

get和post的區別

在b s應用程式中,前台與後台的資料互動,都是通過html中form表單完成的。form提供了兩種資料傳輸的方式 get和post。雖然它們都是資料的提交方式,但是在實際傳輸時確有很大的不同,並且可能會對資料產生嚴重的影響。雖然為了方便的得到變數值,web容器已經遮蔽了二者的一些差異,但是了解二者的...

post和get的區別?

1.get是從伺服器上獲取資料,post是向伺服器傳送資料。get 和 post只是一種傳遞資料的方式,get也可以把資料傳到伺服器,他們的本質都是傳送請求和接收結果。只是組織格式和資料量上面有差別,http協議裡面有介紹。2.get是把引數資料佇列加到提交表單的action屬性所指的url中,值和...