美文网首页
urlencode解码

urlencode解码

作者: 钟微 | 来源:发表于2019-04-09 13:10 被阅读0次

在做接口自动化过程中,http协议在发送url的时候,是以urlencode的编码格式传过去的,通常requests库会帮我们自动处理了。但是服务端返回的url地址,有时候是以urlencode的编码传过来的,如果我们需要从url上提取一些参数信息,就需要对url解码了。

为什么要编码:

通常如果一样东西需要编码,说明其并不适合直接传输。原因多种多样,如Size过大,包含隐私数据。对于Url来说,之所以要进行编码,是因为Url中有些字符会引起歧义。

例如,Url参数字符串中使用key=value键值对这样的形式来传参,键值对之间以&符号分隔,如/s?q=abc&ie=utf-8。如果你的value字符串中包含了=或者&,那么势必会造成接收Url的服务器解析错误,因此必须将引起歧义的&和=符号进行转义,也就是对其进行编码。

解码

import requests
from urllib.parse import urlencode, quote, unquote

url = "http://www.jianshu.com/"
par = {
    "a": "钟微"
}

r = requests.post(url, params=par)
# 一般来说requests库会自动编码
print(r.url)
# 返回的数据里面有urlencode编码的字符串,可以使用unquote方法解码
print(unquote(r.url))

运行结果:

https://www.jianshu.com/?a=%E9%92%9F%E5%BE%AE
https://www.jianshu.com/?a=钟微

相关文章

网友评论

      本文标题:urlencode解码

      本文链接:https://www.haomeiwen.com/subject/wevviqtx.html