企业网站定制开发python request post from 提交表单

前言

一个http企业网站定制开发请求包括三个部分,企业网站定制开发为别为请求行,请求报头,消息主体,企业网站定制开发类似以下这样:
请求行
请求报头
消息主体
HTTP协议规定post提交的数据必须放在消息主体中,但是协议并没有规定必须使用什么编码方式。
服务端通过是根据请求头中的Content-Type字段来获知请求中的消息主体是用何种方式进行编码,再对消息主体进行解析。

具体的编码方式包括:

最常见post提交数据的方式,以form表单形式提交数据。application/x-www-form-urlencoded
以json串提交数据。application/json
上传文件。multipart/form-data

三种编码请求实例

1.提交Form

Reqeusts支持以form表单形式发送post请求,只需要将请求的参数构造成一个字典,然后传给.post()的data参数即可。

  1. def post_sf_waybill_logistics(url, mailNo, phoneNum):
  2. logger.info('当前进度:{}', phoneNum)
  3. headers = {
  4. "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
  5. }
  6. mailData = {
  7. 'language': 0,
  8. 'trackingType': 1,
  9. 'trackingNumber': mailNo,
  10. 'methodType': 1,
  11. 'checkPhoneNo': phoneNum
  12. }
  13. # 转json&去空格
  14. data_json = json.dumps(mailData).replace(' ', '')
  15. postData = {
  16. 'msgData': data_json,
  17. 'serviceCode': 'EXP_ROUS'
  18. }
  19. # headers 指定 application/x-www-form-urlencoded
  20. # post提交时使用字典,不需要转为json提交
  21. res = requests.post(url, postData, headers=headers)
  22. # 将字符串json 转为json对象
  23. resu_j = json.loads(res.text)

2.提交json串
错误写法:json格式data参数不能传送字典,不然运行会报错
即使写上了 'Content-Type':'application/json; charset=UTF-8' ,返回依然出错了,原因就在于 你的请求实体的格式错了,服务端无法解码。
正确写法
1.import json用json.dumps将字典转换成json格式r = requests.post(url=url,data=json.dumps(data),headers=headers)
2.传参数时直接使用json,这个方法headers里面不用再传"Content-Type":"application/json; charset=UTF-8"r = requests.post(url=url,json=jdata,headers=headers)

  1. # 执行请求
  2. def post_url(url, body):
  3. body= authd = {"username": "111","password": "2222"}
  4. datajson = json.dumps(body)
  5. headers = {
  6. 'Content-Type': 'application/json',
  7. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36'
  8. }
  9. response = requests.post(url, data=datajson, headers=headers).json()
  10. #response = requests.post(url, json=datajson, headers=headers).json()
  11. logger.info(response)
  12. return response

3.上传文件
上传文件在爬虫中使用的很少,不过还是使用requests讲解一下使用方式。
Content-Type类型为multipart/form-data,以multipart形式发送post请求

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发