Requests库分享系列:
Requests库(十三)利用钉钉机器人打造一个钉钉群定时推送今日头条24小时热闻
Requests库(十五)一文解决解析text/html格式返回数据
我们在前面的分享中分享了如何处理json格式请求数据。常见的请求数据类型有以下四种。我们只分享常见的。
application/x-www-form-urlencoded
application/json
text/xml
multipart/form-data
这次我们看下python如何发送text/xml格式的接口。
首先我们我们有这样一个接口,可以处理xml格式的请求。那么我们可以来进行请求。
http://httpbin.org/post
我们在请求的时候,首先要声明接口请求的类型。
headers={
"content-type": "text/xml; charset=utf-8"
}
然后我们写下对应的参数
data="<?xml version='1.0' encoding = 'UTF-8'?>\
<COM>\
<REQ name='雷子说测试开发'>\
<USER_ID>leizi</USER_ID>\
<COMMODITY_ID>123456</COMMODITY_ID>\
<SESSION_ID>DwO68dQFBg9xIizKsC6RhaeHRxqIT9nmU</SESSION_ID>\
</REQ></COM>"
然后我们就可以去请求了,代码如下:
import requests
url="http://httpbin.org/post"
headers={
"content-type": "text/xml; charset=utf-8"
}
data="<?xml version='1.0' encoding = 'UTF-8'?>\
<COM>\
<REQ name='雷子说测试开发'>\
<USER_ID>leizi</USER_ID>\
<COMMODITY_ID>123456</COMMODITY_ID>\
<SESSION_ID>DwO68dQFBg9xIizKsC6RhaeHRxqIT9nmU</SESSION_ID>\
</REQ></COM>"
ronpose=requests.post(url,data=data.encode("utf-8"),headers=headers)
print(ronpose.text)
接口返回 如下。
有人会问为啥要data.encode(‘utf-8’),因为在正常的请求的时候,接口返回,因为这里有中文,可能在请求的时候出现这样的错误,所以我们要做处理。
不只是在请求的时候,在接口返回的时候,我们也可能遇到乱码或者编码问题,我们需要对结果进行decode来解决,展示到我们想要的请求。
这里我们分享的只是用xml格式发送的请求。当然了,接口返回的也有xml格式的,我们可以使用python自带的xml库进行解析。
如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~