溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python怎樣通過get方式,post方式發(fā)送http請求和接收http響應(yīng)

發(fā)布時(shí)間:2021-12-04 16:55:14 來源:億速云 閱讀:830 作者:柒染 欄目:互聯(lián)網(wǎng)科技

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)python怎樣通過get方式,post方式發(fā)送http請求和接收http響應(yīng),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1.GET方法

get方法是直接將要請求的數(shù)據(jù)放在url中,下面用httplib和urllib2模擬用戶登錄。

1)

    #URL地址

    url_Addr = "https://apac-axlprod01-api.com:8081/userLogin?"

    #用戶登陸需要傳遞的參數(shù)

    params = urllib.urlencode({'name': user_name, 'password': user_pwd, 'appId': app_Id})

    #我安裝的python證書好像有問題,失能校驗(yàn)

    ssl._create_default_https_context = ssl._create_unverified_context

    #將參數(shù)和URL組成一個(gè)URL

    req = urllib2.Request(url_Addr+params)

    res = urllib2.urlopen(req)

    data = res.read()

    res.close()

2)

    #URL地址

    url_Addr = "apac-axlprod01-api.com:8081"

    #用戶登陸需要傳遞的參數(shù)

    params = urllib.urlencode({'name': user_name, 'password': user_pwd, 'appId': app_Id})

    ssl._create_default_https_context = ssl._create_unverified_context

    conn = httplib.HTTPSConnection(url_Addr)

    #將參數(shù)和URL組成一個(gè)URL

    conn.request("GET", "/userLogin?" + params)

    response = conn.getresponse()

    data = response.read()

    response.close()

2.POST方法

POST方法是直接將要請求的數(shù)據(jù)放在data或body中,不能放在url中,下面用httplib和urllib2模擬用戶登錄。

1)

    #URL地址

    url_Addr = "https://apac-axlprod01-api.com:8081/userLogin"

    #用戶登陸需要傳遞的參數(shù)

    params = urllib.urlencode({'name': user_name, 'password': user_pwd, 'appId': app_Id})

    ssl._create_default_https_context = ssl._create_unverified_context

    #傳入U(xiǎn)RL和Data

    req = urllib2.Request(url = url_Addr,data = params)

    res = urllib2.urlopen(req)

    data = res.read()

    res.close()

2)

    #URL地址

    url_Addr = "apac-axlprod01-api.com"

    #headers

    headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}

    #用戶登陸需要傳遞的參數(shù)

    params = urllib.urlencode({'name': user_name, 'password': user_pwd, 'appId': app_Id})

    ssl._create_default_https_context = ssl._create_unverified_context

    conn = httplib.HTTPSConnection(url_Addr,8081)

    #傳入U(xiǎn)RL、body和headers

    conn.request("POST","/userLogin",params,headers)

    response = conn.getresponse()

    data = response.read()

    response.close()

httplib實(shí)現(xiàn)了http和https的客戶端協(xié)議,但是在python中,模塊urllib和urllib2對httplib進(jìn)行了更上層的封裝

下面詳細(xì)介紹httplib提供的常用類型和方法。

httplib.HTTPConnection ( host [ , port [ , strict [ , timeout ]]] )

  HTTPConnection類的構(gòu)造函數(shù),表示一次與服務(wù)器之間的交互,即請求/響應(yīng)。參數(shù)host表示服務(wù)器主機(jī), 如:www.csdn.net;port為端口號,默認(rèn)值為80; 參數(shù)strict的 默認(rèn)值為false, 表示在無法解析服務(wù)器返回的狀態(tài)行時(shí)( status line) (比較典型的狀態(tài)行如: HTTP/1.0 200 OK ),是否拋BadStatusLine 異常;可選參數(shù)timeout 表示超時(shí)時(shí)間。

  HTTPConnection提供的方法:

HTTPConnection.request ( method , url [ , body [ , headers ]] )

  調(diào)用request 方法會(huì)向服務(wù)器發(fā)送一次請求,method 表示請求的方法,常用有方法有g(shù)et 和post和head ;url 表示請求的資源的url ;body 表示提交到服務(wù)器的數(shù)據(jù),必須是字符串(如果method 是"post" ,則可以把body 理解為html 表單中的數(shù)據(jù));headers 表示請求的http 頭。

HTTPConnection.getresponse ()

  獲取Http 響應(yīng)。返回的對象是HTTPResponse 的實(shí)例,關(guān)于HTTPResponse 在下面 會(huì)講解。

HTTPConnection.connect ()

  連接到Http 服務(wù)器。

HTTPConnection.close ()

  關(guān)閉與服務(wù)器的連接。

HTTPConnection.set_debuglevel ( level )

  設(shè)置高度的級別。參數(shù)level 的默認(rèn)值為0 ,表示不輸出任何調(diào)試信息。

httplib.HTTPResponse

  HTTPResponse表示服務(wù)器對客戶端請求的響應(yīng)。往往通過調(diào)用HTTPConnection.getresponse()來創(chuàng)建,它有如下方法和屬性:

HTTPResponse.read([amt])

  獲取響應(yīng)的消息體。如果請求的是一個(gè)普通的網(wǎng)頁,那么該方法返回的是頁面的html??蛇x參數(shù)amt表示從響應(yīng)流中讀取指定字節(jié)的數(shù)據(jù)。

HTTPResponse.getheader(name[, default])

  獲取響應(yīng)頭。Name表示頭域(header field)名,可選參數(shù)default在頭域名不存在的情況下作為默認(rèn)值返回。

HTTPResponse.getheaders()

  以列表的形式返回所有的頭信息。

HTTPResponse.msg

  獲取所有的響應(yīng)頭信息。

HTTPResponse.version

  獲取服務(wù)器所使用的http協(xié)議版本。11表示http/1.1;10表示http/1.0。

HTTPResponse.status

  獲取響應(yīng)的狀態(tài)碼。如:200表示請求成功。

HTTPResponse.reason

  返回服務(wù)器處理請求的結(jié)果說明。一般為”O(jiān)K”

上述就是小編為大家分享的python怎樣通過get方式,post方式發(fā)送http請求和接收http響應(yīng)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI