日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python2018上海脱产_python接口自动化27-urlencode编码%E6%82%A0%E6%82%A0与解码

發布時間:2025/4/5 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python2018上海脱产_python接口自动化27-urlencode编码%E6%82%A0%E6%82%A0与解码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

urllib.parse 里面三個方法:urlencode,quote,unquote詳解。

在做接口自動化過程中,http協議在發送url的時候,是以urlencode的編碼格式傳過去的,通常requests庫會幫我們自動處理了。但是服務端返回的url地址,有時候是以urlencode的編碼傳過來的,我們需要從url上提取一些參數信息,這時候就需要對url解碼了。

為什么需要urlencode編碼

通常如果一樣東西需要編碼,說明其并不適合直接傳輸。原因多種多樣,如Size過大,包含隱私數據。對于Url來說,之所以要進行編碼,是因為Url中有些字符會引起歧義。

例如,Url參數字符串中使用key=value鍵值對這樣的形式來傳參,鍵值對之間以&符號分隔,如/s?q=abc&ie=utf-8。如果你的value字符串中包含了=或者&,那么勢必會造成接收Url的服務器解析錯誤,因此必須將引起歧義的&和=符號進行轉義,也就是對其進行編碼。

urlencode編碼

先看一個python請求案例

import requests

url = "http://www.example.com/"

par = {

"a": "上海",

"b": "悠悠"

}

body = {

"content": "悠悠",

"charsetSelect": "utf-8",

"en": "UrlEncode編碼"

}

r = requests.post(url, params=par, data=body)

print(r.url)

運行結果:

通過fiddler抓包看raw,會發現傳過去的request部分,是經過了urlencode編碼的(編碼的操作requests庫已經幫我們自動處理了,這就是requests人性化的地方)

urlencode編碼

如果我們想自己操作,對字符串傳入的字典參數進行urlencode編碼,就需要用到兩個方法urlencode和quote

urlencode方法傳字典參數

from urllib.parse import urlencode, quote, unquote

# urlencode方法參數是字典

body = {

"content": "悠悠",

"charsetSelect": "utf-8",

"en": "UrlEncode編碼"

}

print(urlencode(body))

運行結果:

content=%E6%82%A0%E6%82%A0&charsetSelect=utf-8&en=UrlEncode%E7%BC%96%E7%A0%81

quote傳字符串參數

# quote方法參數是字符串

print(quote("上海-悠悠"))

url = "http://www.example.com/?a=上海&b=悠悠"

print(quote(url))

運行結果:

%E4%B8%8A%E6%B5%B7-%E6%82%A0%E6%82%A0

http%3A//www.example.com/%3Fa%3D%E4%B8%8A%E6%B5%B7%26b%3D%E6%82%A0%E6%82%A0

urlencode解碼

如果返回的數據里面有urlencode編碼的字符串,類似于%E4%B8%8A%E6%B5%B7&b=%E6%82%A0%E6%82%A0這種格式,可以使用unquote方法解碼

import requests

from urllib.parse import urlencode, quote, unquote

url = "http://www.example.com/"

par = {

"a": "上海",

"b": "悠悠"

}

body = {

"content": "悠悠",

"charsetSelect": "utf-8",

"en": "UrlEncode編碼"

}

r = requests.post(url, params=par, data=body)

print(r.url)

print(unquote(r.url))

運行結果:

總結

以上是生活随笔為你收集整理的python2018上海脱产_python接口自动化27-urlencode编码%E6%82%A0%E6%82%A0与解码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。