最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2018年05月18日 09:05:39   作者:M1mory  
今天小編就為大家分享一篇對python中使用requests模塊參數(shù)編碼的不同處理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

一、requests模塊自動URL編碼參數(shù)

要使參數(shù)自動URL編碼,需要將請求參數(shù)以字典的形式定義,如下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編碼正確處理

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

使用dictionary定義參數(shù),發(fā)送請求時requests模塊會自動URL編碼處理參數(shù).但有些時候可能不需要編碼,要求參數(shù)原樣輸出,這個時候?qū)?shù)直接定義成字符串即可.

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)

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

最后效果如下圖,參數(shù)原樣輸出:

三、參數(shù)使用format或%格式化,導(dǎo)致參數(shù)str變成bytes

有些時候直接定義的字符串參數(shù),其中有的參數(shù)是變量,需要format或%格式化控制變量.這個時候會發(fā)現(xiàn)格式化后的參數(shù)變成了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)

參數(shù)變成了bytes

在該種請求下:

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

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

以上這篇對python中使用requests模塊參數(shù)編碼的不同處理方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

桂东县| 普陀区| 吴桥县| 越西县| 林甸县| 法库县| 克东县| 四子王旗| 含山县| 磐安县| 绍兴市| 萝北县| 北辰区| 察雅县| 荃湾区| 克拉玛依市| 兰州市| 定日县| 邹平县| 嫩江县| 察雅县| 邵阳市| 原平市| 云南省| 台湾省| 镇坪县| 桐柏县| 富平县| 龙泉市| 股票| 鞍山市| 新龙县| 栾城县| 沅陵县| 昌吉市| 长沙市| 吉林市| 昆明市| 军事| 东海县| 屏南县|