前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python post请求

python post请求

作者头像
灯珑LoGin
发布2022-10-31 09:51:29
1.7K0
发布2022-10-31 09:51:29
举报
文章被收录于专栏:龙进的专栏龙进的专栏

post请求一般用于表单提交,把参数内容以bytes类型传入

注意,参数需要进行url转码!

代码语言:javascript
复制
import json
import pprint
from urllib import request, parse


def fetch_page():
    username = 'xxxxxxxxx'
    password = 'yyyyyyyyy'

    #参数需要进行url转码
    post_data = parse.urlencode([
        ('username', username),
        ('password', password),
    ])

    #构造Request对象
    http_request = request.Request('http://httpbin.org/post')
    http_request.add_header('Refer', 'yyyyyyyyy')
    http_request.data = post_data.encode('utf-8')

    with request.urlopen(http_request) as http_response:
        content = http_response.read()
        result = json.loads(content.decode('utf-8'))
        pprint.pprint(result)


def main():
    fetch_page()


if __name__ == '__main__':
    main()

post请求只需构建一个Request对象,并把参数传递给Request对象的data属性即可(也可以在urlopen方法中传递给data参数)。

下面讲到url编码转换的问题

代码语言:javascript
复制
from urllib import parse


username = 'hhhhhhhh'
password = 'fhsfgu@#$%^&*'

post_data = parse.urlencode([
    ('username', username),
    ('password', password),
])

print(post_data)

执行结果

代码语言:javascript
复制
username=hhhhhhhh&password=fhsfgu%40%23%24%25%5E%26%2A

从执行结果中,我们可以看到,urlencode函数会合并参数成一个字符串,并且还会把特殊字符转换为url统一的编码格式。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年9月2日20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档