首页 > 编程语言 > 详细

Python发送post请求的三种入参-文件、base64、普通入参

时间:2020-10-26 19:57:43      阅读:417      评论:0      收藏:0      [点我收藏+]

作者:cao.dingzheng

  post是常见的http请求方式之一,而post常见的http请求入参方式一般有文件入参、包含base64编码的json入参、普通入参。这里就针对这三种常见入参方式进行Python的requests库post请求展示。

在http协议中,post提交的数据必须放在消息主体中,但是协议中并没有规定必须使用什么编码方式,从而导致了提交方式的不同。服务端根据请求头中的content-type字段来获知请求中的消息主体是用何种方式进行编码,再对消息主体进行解析。这里主要针对于下面两种编码方式: 

  - application/json :以json串提交数据。 

  - multipart/form-data:上传文件。

  第一种请求入参:普通入参。这里展示了文字入参方法,也有如果想要对展示的结果utf-8编码格式进行转换。

 

#coding=utf-8
import requests
url = 请求地址
header = {content-type:application/json}
t = "心灵安顿了,平衡了,生命也就快乐了,无憾了,如眼前一幅静美的画卷,清幽,温馨与宁静。"
data = {"text":t}

#这里需要注意data和json的区别
response = requests.post(url=url,headers=header,json=data)
#对请求结果进行编码转换,转换成汉字
request = response.text.encode(utf-8).decode(unicode_escape)
#不转换返回的结果
print(response.text)
#转换后返回的结果
print(request)

 

返回结果为:

{"value":{"\u60c5\u611f\u503e\u5411":"\u6b63\u5411","\u6d88\u6781\u6982\u7387":9.72836e-06,"\u79ef\u6781\u6982\u7387":0.99999,"\u8f93\u5165\u6587\u672c":"\u5fc3\u7075\u5b89\u987f\u4e86\uff0c\u5e73\u8861\u4e86\uff0c\u751f\u547d\u4e5f\u5c31\u5feb\u4e50\u4e86\uff0c\u65e0\u61be\u4e86\uff0c\u5982\u773c\u524d\u4e00\u5e45\u9759\u7f8e\u7684\u753b\u5377\uff0c\u6e05\u5e7d\uff0c\u6e29\u99a8\u4e0e\u5b81\u9759\u3002"}}

{"value":{"情感倾向":"正向","消极概率":9.72836e-06,"积极概率":0.99999,"输入文本":"心灵安顿了,平衡了,生命也就快乐了,无憾了,如眼前一幅静美的画卷,清幽,温馨与宁静。"}}


Process finished with exit code 0

第二种请求入参:将图片转换成base64格式并且进行json入参。

# coding=utf-8
import requests,base64

photo = rD:\test\wjj.jpg#图片路径

with open(photo,rb) as f:
    base64_data = base64.b64encode(f.read())
    s = base64_data.decode()


url = 请求url#请求地址
data = {"imageBase64": s}
header = {Content-Type: application/json}
response = requests.post(url=url,headers=header,json=data)

print(response.text)

第三种请求入参:带文件入参,如csv,txt,zip等。

# coding=utf-8
mport requests
from requests_toolbelt.multipart.encoder import MultipartEncoder

filename = rD:\test\OLT_DEMO.csv
file = open(filename,rb)
url = 请求地址
data = MultipartEncoder(
    fields={
        OLT_INFO:
            (OLT_DEMO.csv,
             file,
             application/octet-stream)
    }
)
header={}
header[content-type] = data.content_type
response = requests.post(url=url,headers=header,data=data)
print(response.text)

 

Python发送post请求的三种入参-文件、base64、普通入参

原文:https://www.cnblogs.com/ustcinfo-qc/p/13879335.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!