(一)python发送HTTP 请求的两种方式(get和post )

引入 requests 包

python 复制代码
import requests

注:发送请求(包括请求行、方法类型、头、体) & 常见的请求方式有get、post、put、delete

一、发送get请求

格式:requests.get() (内容: url必填; params选填:url参数字典)

# ~ 无参数的get请求
python 复制代码
res = requests.get(url='http://ws.webxml.com.cn/WebServices/WeatherWS.asmx/getRegionProvince')
print(res.text)
#打印响应主体内容,字符串格式
# ~ 有参数的get请求
python 复制代码
res = requests.get(url='http://ws.webxml.com.cn/WebServices/WeatherWS.asmx/getSupportCityString?theRegionCode=3113')
print(res.text)
# ~ 使用params的get请求
python 复制代码
res = requests.get(url='http://ws.webxml.com.cn/WebServices/WeatherWS.asmx/getSupportCityString',
                  params={"theRegionCode":3113})
print(res.text)

二、发送post请求

知识扩展# requests.post() post请求分为5种,常用的有三种,如下

①application/x-www-form-urlencod (form表单);

②raw (纯文本格式):有5种格式,分别为json/xml/Html/Text/JavaScrip

③multipart/form-data (复合式表单)

# ~ 无参数的post请求

~ 有正文体的post请求

1. form表单(application/x-www-form-urlencod)

-----data 后跟字典

eg.1: 带参数的查询接口

python 复制代码
res = requests.post(url='http://ws.webxml.com.cn/WebServices/WeatherWS.asmx/getSupportCityString',
              headers={"Content-Type": "application/x-www-form-urlencoded"},
              data={"theRegionCode": 3113})
print(res.text)

eg.2: 带账号名密码的登录接口

python 复制代码
res = requests.post(url='http://123.56.99.53:9000/event/api/admin/',
              headers={"Content-Type": "application/x-www-form-urlencoded"},
              data={"username": "admin", "password": "MTIzYWRtaW4="})
print(res.text)

2. 纯文本格式(raw)

**# ~ xml格式 ----**data 后跟字符串

python 复制代码
res = requests.post(url='http://ws.webxml.com.cn/WebServices/WeatherWS.asmx',
              headers ={"Content-Type": "text/xml; charset=utf-8",
                       "SOAPAction": "http://WebXml.com.cn/getSupportCityString"},
              data = '''<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getSupportCityString xmlns="http://WebXml.com.cn/">
      <theRegionCode>string</theRegionCode>
    </getSupportCityString>
  </soap:Body>
</soap:Envelope>''')
print(res.text)

# ~json格式 ----- json 后跟字典(常用), or ----data 后跟json字符串

python 复制代码
res = requests.post(url='http://123.56.99.53:5000/event/weather/getWeather/',
             headers={"Content-Type": "application/json"},
             json={"theCityCode": "1001"})
print(res.text)

注:# json后面跟的是字典即json={"theCityCode": "1001"}),可改成 data='{"theCityCode": "1001"})';字典能自动转为json字符串,所以一般用字典表示;建议纯json正文的接口使用第一种方式,除非是较长的字符串

3. 复合式表单(multipart/form-data )

------上传二进制文件 ---- key value (接口名称:文件名)

python 复制代码
res = requests.post(url='http://123.56.99.53:9001/api/uploadFile/',
              headers={"Cookie": "uid=1;token=44c972f05d76fdd93c31f9c2b65bb098f308cdfc"
                      #"Content-Type": "multipart/form-data"},
#有的接口不需要写正文体格式,老服务器一般需要写
              files={"myfile1": open('D:\全力以富\1.docx', 'rb')
                     #"myfile2: open(上传多个文件)"})
print(res.text)

注:上传接口 files={'文件路径','rb'} rb表示

相关推荐
啦啦啦啦啦zzzz10 小时前
时间轮定时器
linux·服务器·网络·c++·定时器
ITyunwei098710 小时前
从 ITIL 视角量化-第三集:工单系统如何成为 ITSM 治理抓手?架构+量化
运维·网络·企业微信
DLYSB_10 小时前
让 PLC“开口说话”:基于 Modbus TCP 的声光语音告警设计与 Python 调试
python·网络协议·tcp/ip·报警灯
半桶水专家11 小时前
MQTT协议使用手册
网络
那年窗外下的雪.11 小时前
AIDC 学习日志|第 14 天|MAC Flapping 与 EVPN 多归属分层排障
网络·git·学习·macos·github·spine
2601_9632827711 小时前
油田、工矿厂区 DMR 专网对讲系统:部署实施、干扰治理与防爆终端选型实战
网络·架构
随风而飘18612 小时前
Keithley美国吉时利 2016-P 6.5位音频分析数字多用表
网络·人工智能·功能测试
聚铭网络12 小时前
【一周安全资讯】《网络数据安全风险评估办法》正式实施;隐私加密通讯平台Threema遭DDoS攻击,服务大面积瘫痪
网络·安全·ddos
xiaoxiangsiyan12 小时前
现代大型虚拟化智慧园区整体架构EVPN‑VXLAN落地全解
运维·网络·学习·架构
方芯半导体12 小时前
EtherCAT 从站方案中 MAC、PHY 与 MII 的层级关系与实现解析
网络·人工智能·单片机·macos·ethercat