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

news/2025/3/26 16:09:49/

引入 requests 包

import requests

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

一、发送get请求

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

# ~ 无参数的get请求
res = requests.get(url='http://ws.webxml.com.cn/WebServices/WeatherWS.asmx/getRegionProvince')
print(res.text)
#打印响应主体内容,字符串格式
# ~ 有参数的get请求
res = requests.get(url='http://ws.webxml.com.cn/WebServices/WeatherWS.asmx/getSupportCityString?theRegionCode=3113')
print(res.text)
# ~ 使用params的get请求
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: 带参数的查询接口

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: 带账号名密码的登录接口

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    后跟字符串

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字符串

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 (接口名称:文件名)

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表示


http://www.ppmy.cn/news/1203820.html

相关文章

Selenium切换窗口句柄及调用Chrome浏览器

一. 调用Chrome浏览器 首先,假设通过Firefox()浏览器定向爬取首页导航栏信息,审查元素代码如下图所示,在div class="menu"路径的ul、li、a下,同时可以定位ul class="clearfix"。 # coding=utf-8 import os from selenium import webdriver #…

JavaFX作业

前言&#xff1a; 在写这个作业之前&#xff0c;尝试在JavaFX中添加全局快捷键&#xff0c;测试了大概5个小时&#xff0c;到处找教程换版本&#xff0c;结果最后还是没找到支持Java8以上的&#xff08;也有可能是我自己的问题&#xff09;&#xff0c;最后只能退而求其次&…

java获取近期视频流关键帧与截图

1、背景 最近在做视频转发的开发时&#xff0c;遇到一个问题&#xff0c;前端订阅播放h264视频流时&#xff0c;有时会出现一段时间黑屏&#xff0c;经过测试发现是没有收到关键帧&#xff0c;只有第一帧是关键帧才能保证后续播放正常。所以后端需要实现一个功能&#xff0c;就…

Python中的乘法matmul()

torch.matmul() 将两个张量相乘划分成了五种情形&#xff1a; 一维 一维、二维 二维、一维 二维、二维 一维、涉及到三维及三维以上维度的张量的乘法。 1.如果两个张量都是一维的&#xff0c;即 torch.Size([n]) &#xff0c;此时返回两个向量的点积。作用与 torch.dot() …

Django+Celery框架自动化定时任务开发

本章介绍使用DjCelery即DjangoCelery框架开发定时任务功能&#xff0c;在Autotestplat平台上实现单一接口自动化测试脚本、业务场景接口自动化测试脚本、App自动化测试脚本、Web自动化测试脚本等任务的定时执行、调度、管理等&#xff0c;从而取代Jenkins上的定时执行脚本和发送…

SpringCloud之Seata基本介绍与安装

目录 基本介绍 概述 核心组件 四种方案 部署TC服务&#xff08;安装&#xff09; 下载 修改registry.conf nacos添加配置 建表(仅db) 启动 基本介绍 概述 Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将…

【多线程面试题二十三】、 说说你对读写锁的了解volatile关键字有什么用?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;【多线程面试题二十二】…

fdisk磁盘分区

目录 0.请注意磁盘分区 初学建议在虚拟机上面操作 不要再服务器上面 一、fdisk命令格式二、fdisk常用操作1. 列出磁盘分区信息2. 创建新分区3. 删除分区4. 修改分区大小 三、案例讲解1. 运行fdisk命令&#xff0c;并指定需要操作的设备&#xff1a;2. 输入n命令创建新分区&…