中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

對python中使用requests模塊參數編碼的不同處理方法

發布時間:2020-08-31 18:51:00 來源:腳本之家 閱讀:222 作者:M1mory 欄目:開發技術

python中使用requests模塊http請求時,發現中文參數不會自動的URL編碼,并且沒有找到類似urllib (python3)模塊中urllib.parse.quote("中文")手動URL編碼的方法.研究了半天發現requests模塊對中文參數有3種不同的處理方式.

一、requests模塊自動URL編碼參數

要使參數自動URL編碼,需要將請求參數以字典的形式定義,如下demo:

import requests

proxy = {"http":"http://127.0.0.1:8080",
 "https":"http://127.0.0.1:8080"}

def reTest():
 url = "http://www.baidu.com"
 pdict = {"name":"中文測試"}
 requests.post(url = url,data = pdict,proxies = proxy)

效果如下圖,中文被URL編碼正確處理

對python中使用requests模塊參數編碼的不同處理方法

二、參數原樣輸出,不需要編碼處理

使用dictionary定義參數,發送請求時requests模塊會自動URL編碼處理參數.但有些時候可能不需要編碼,要求參數原樣輸出,這個時候將參數直接定義成字符串即可.

import requests

proxy = {"http":"http://127.0.0.1:8080",
 "https":"http://127.0.0.1:8080"}

def reTest():
 url = "http://www.baidu.com"
 pstr1 = "name=中文".encode("utf-8")
 requests.post(url = url,data = pstr1, proxies = proxy)

注:參數需要utf-8編碼,否則會報錯Use body.encode('utf-8') if you want to send it encoded in UTF-8.

最后效果如下圖,參數原樣輸出:

對python中使用requests模塊參數編碼的不同處理方法

三、參數使用format或%格式化,導致參數str變成bytes

有些時候直接定義的字符串參數,其中有的參數是變量,需要format或%格式化控制變量.這個時候會發現格式化后的參數變成了bytes.

import requests

proxy = {"http":"http://127.0.0.1:8080",
 "https":"http://127.0.0.1:8080"}

def reTest():
 url = "http://www.baidu.com"
 pstr2 = "name={0}".format("中文".encode("utf-8"))
 requests.post(url = url,data = pstr2, proxies = proxy)

參數變成了bytes

對python中使用requests模塊參數編碼的不同處理方法

在該種請求下:

1. 如果參數需要URL編碼.當參數少的時候可以使用dict定義.如果參數太多,dict比較麻煩,可以針對參數使用urllib.parse.quote("中文")手動encode成URL編碼.

2. 如果中文參數需要原樣輸出.將參數格式化完成后再編碼即可.pstr2 = "name={0}".format("中文").encode("utf-8")

以上這篇對python中使用requests模塊參數編碼的不同處理方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

饶平县| 平凉市| 阿拉善盟| 屯昌县| 大连市| 英山县| 自贡市| 宁化县| 唐河县| 古浪县| 青铜峡市| 康马县| 盐城市| 盐源县| 榆社县| 平顶山市| 长顺县| 长治市| 吉木乃县| 务川| 渝中区| 榕江县| 荥阳市| 兴业县| 始兴县| 江西省| 宜兰县| 盐源县| 太和县| 榆树市| 黔南| 沁阳市| 大姚县| 溧阳市| 昆明市| 宁国市| 平果县| 伊宁市| 阿巴嘎旗| 新昌县| 大冶市|