python接口测试之----urllib和requests的Http请求

Ignition Edge vs 完整版Ignition:分布式SCADA架构选型与配置全解析 本文深入对比Ignition Edge与完整版Ignition在分布式SCADA架构中的核心差异,包括授权模型、功能矩阵及适用场景。重点解析混合架构的技术实现,特别是MQTT与Sparkplug B协议的集成配置,帮助技术决策者在成本、功能与维护复杂度之间找到最佳平衡点。 阅读详情

四:python接口之http请求

参考文档:https://www.cnblogs.com/leiziv5/p/6422881.html

python的强大之处在于提供了很多的标准库以及第三库,本文介绍urllib和第三库的requests。

Urllib 定义了很多函数和类,这些函数和类能够帮助我们在复杂的情况下获取url内容。复杂情况— 基本的和深入的验证, 重定向, cookies 等等

Urllib的GET请求代码如下:

复制代码

import urllib.request

url='http://www.baidu.com'

response=urllib.request.Request(url=url)

html=urllib.request.urlopen(response)

print(html.getcode())

print(html.headers)

复制代码

 

 

请求结果:

/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4 /Users/playcrab/PycharmProjects/jiekouceshi/pachong.py

200

Date: Mon, 20 Feb 2017 08:08:36 GMT

Content-Type: text/html; charset=utf-8

Transfer-Encoding: chunked

Connection: Close

Set-Cookie: BAIDUID=D3E5547ACC26D3908EBB29522BABCCD4:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com

Set-Cookie: BIDUPSID=D3E5547ACC26D3908EBB29522BABCCD4; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com

Set-Cookie: PSTM=1487578116; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com

Set-Cookie: BDSVRTM=0; path=/

Set-Cookie: BD_HOME=0; path=/

Set-Cookie: H_PS_PSSID=21935_1455_21090_17001_22036; path=/; domain=.baidu.com

P3P: CP=" OTI DSP COR IVA OUR IND COM "

Cache-Control: private

Cxy_all: baidu+547441cee80f5b2514d2439b86d8b151

Expires: Mon, 20 Feb 2017 08:08:33 GMT

X-Powered-By: HPHP

Server: BWS/1.1

X-UA-Compatible: IE=Edge,chrome=1

BDPAGETYPE: 1

BDQID: 0xc3d33f280001f43e

BDUSERID: 0

Urllib的Post请求,代码:

复制代码

import urllib.request

import urllib.parse

url='http://www.tuling123.com/openapi/api'

data={"key": "your", "info": '你好'}



data=urllib.parse.urlencode(data).encode('utf-8')

re=urllib.request.Request(url,data)

html=urllib.request.urlopen(re)



print(html.getcode(),html.msg)

print(html.read())

复制代码

 

 

结果:

/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4 /Users/playcrab/PycharmProjects/jiekouceshi/pachong.py

200 OK

b'{"code":40001,"text":"\xe4\xba\xb2\xe7\x88\xb1\xe7\x9a\x84\xef\xbc\x8ckey\xe4\xb8\x8d\xe5\xaf\xb9\xe5\x93\xa6\xe3\x80\x82"}'

(注:这里不是乱码是输出格式的问题。)

下面介绍下requests库的http请求、

GET请求:

import requests

r = requests.get('https://www.baidu.com')

print(r.headers)

 

 

结果:

结果:

/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4 /Users/playcrab/PycharmProjects/jiekouceshi/pachong.py

200 OK

b'{"code":40001,"text":"\xe4\xba\xb2\xe7\x88\xb1\xe7\x9a\x84\xef\xbc\x8ckey\xe4\xb8\x8d\xe5\xaf\xb9\xe5\x93\xa6\xe3\x80\x82"}'

(注:这里不是乱码是输出格式的问题。)

下面介绍下requests库的http请求、

GET请求:

import requests
r = requests.get('https://www.baidu.com')
print(r.headers)

结果:

{'Last-Modified': 'Mon, 23 Jan 2017 13:23:55 GMT', 'Transfer-Encoding': 'chunked', 'Pragma': 'no-cache', 'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Content-Encoding': 'gzip', 'Date': 'Mon, 20 Feb 2017 08:30:29 GMT', 'Server': 'bfe/1.0.8.18', 'Connection': 'keep-alive', 'Content-Type': 'text/html', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/, __bsi=12827760870170119103_00_7_N_N_2_0301_002F_N_N_N_0; expires=Mon, 20-Feb-17 08:30:34 GMT; domain=www.baidu.com; path=/'}

POST请求:

import requests
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
print(r.text)

@font-face { font-family: "Times"; }@font-face { font-family: "宋体"; }@font-face { font-family: "Cambria Math"; }@font-face { font-family: "@宋体"; }@font-face { font-family: "Cambria"; }@font-face { font-family: "Menlo"; }p.MsoNormal, li.MsoNormal, div.MsoNormal { margin: 0cm 0cm 0.0001pt; text-align: justify; font-size: 12pt; font-family: Cambria; }p { margin-right: 0cm; margin-left: 0cm; font-size: 10pt; font-family: Times; }pre { margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: Courier; }span.HTML { font-family: Courier; }.MsoChpDefault { font-size: 10pt; font-family: Cambria; }div.WordSection1 { }

结果:
{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {
    "key1": "value1", 
    "key2": "value2"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Content-Length": "23", 
    "Content-Type": "application/x-www-form-urlencoded", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.10.0"
  }, 
  "json": null, 
  "origin": "180.87.10.156", 
  "url": "http://httpbin.org/post"

以上是利用urllib和requests发送GET和POST请求的事例。

基于urllib的接口测试框架 这个自动化框架要实现什么功能: 从Excel里提取出测试用例,包括请求方式、url地址、入参等。 测试报告的输出,并且测试报告得包括执行的测试用例数量、成功的数量、失败的数量 以及哪条用例失败了,失败的是哪一个,失败的原因是什么。 测试报告用什么形式输出,Excel,还是html,还是其他的,这里我选择了Excel。 配置文件需要配置什么东西。 --------------------- 作者:qq_34800003 来源:优快云 原文:https://blog.csdn.net/qq_34800003/article/details/86765659 版权声明:本文为博主原创文章,转载请附上博文链接! 立即下载

相关推荐

【SystemVerilog项目实践】4.AHB-SRAMC(验证计划)

验证计划

托马斯的博客 3660

【python 学习】HTTP协议,urllib请求简单入门详解(入坑谨慎)

【python 学习】HTTP协议,urllib请求简单入门详解(入坑谨慎) python 学习记录 菜鸟程序员一枚,从现在开始记录python学习,并将工作中遇到的问题和程序进行整理输出,方便自己的记忆。 1 、HTTP协议 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 web服务器 Apach

Smilelulinlin的博客 635

第十篇|网络子系统 ②——无损以太网、PFC/ECN、DCQCN 与拥塞可视化

网络部分了解了解

qq_37535542的博客 1874

python3网络爬虫一《使用urllib.request发送请求》

python 爱好者交流群:810306356 这里有很多像你一样的伙伴,共同分享学习python的经验! 使用urllib 在Python2版本中,有urllib和urlib2两个库可以用来实现request的发送。而在Python3中,已经不存在urllib2这个库了,统一为urllib。Python3 urllib库官方链接 https://docs.pytho...

软件测试技术的博客 7万+

ControlCAN.dll开发适配USBCAN_E/2E_U设备

摘要:本文提供了USBCAN_E/2E_U设备的配置指南:1)安装专用驱动;2)获取最新的ControlCAN.dll文件;3)修改VCI调用顺序,新增VCI_SetReference函数设置波特率;4)使用工具计算波特率配置值,并给出了常见波特率对应的代码参考值(如500K对应0x060007)。配置过程强调使用特定工具计算精确的波特率参数,并提供了相关软件下载链接。

weixin_43969033的博客 387

用Python模拟随机游走:从一维到三维,直观理解马尔可夫链的常返性

本文通过Python模拟一维到三维的随机游走,直观展示马尔可夫链的常返性特性。使用NumPy和Matplotlib构建模拟器,揭示不同维度下随机游走的返回概率差异,帮助读者理解为什么一维和二维游走具有常返性,而三维游走可能永远迷失。文章包含完整的代码示例和可视化技巧,适合概率论和Python编程爱好者学习实践。

weixin_28694295的博客 400

python 发送http请求

http请求 import urllib import urllib2 req = urllib2.Request(url = req_url,data = '') resp2 = urllib2.urlopen(req).read()

缘故的博客 799

YOLOv12涨点改进 | 独家创新-注意力改进篇 | ECCV 2024 | YOLOv12引入AgentAttention代理注意力模块,兼顾 Softmax 和线性注意力优点,提高检测精度

🔥本文给大家介绍使用Agent Attention模块改进YOLOv12网络模型。其主要作用是通过引入高效的代理token来减少计算复杂度,同时保留全局上下文建模能力。相比传统的Softmax注意力,Agent Attention通过代理token聚合并广播信息,从而降低了模型在处理高分辨率图像时的计算负担,并显著提高了推理速度。其优势在于保持了目标检测中的全局信息处理能力,同时加速了生成过程,特别是在高分辨率场景下,可以提高检测精度、减少内存消耗,并提升处理速度。

Ai缝合怪、助力小伙伴高效发论文 155

python使用get和post方法_python+requests进行get、post方法接口测试

简介:Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,能够节约咱们大量的工做,彻底知足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,因此它比 urllib 更加 Pythoner。python1、请求方法类型一、get请求:requests.get...

weixin_39886841的博客 189

锂电池SOH预测 | 基于BP神经网络的锂电池SOH预测(附matlab完整源码)

锂电池SOH预测 | 基于BP神经网络的锂电池SOH预测(附matlab完整源码)

天天酷科研的博客 1114

【系统分析师】2026年上半年真题:案例分析-答案及详解(回忆版)

案例一聚焦因果分析法(鱼骨图)的应用,分析企业订单履约问题。问题1阐述因果分析法定义及常见方法(鱼骨图、5个为什么等);问题2将8个原因归类为人员、方法、合同等5类;问题3筛选适合鱼骨图的场景(如系统响应慢、服务器故障等),强调其适用于复杂根因分析。 案例二对比嵌入式系统中Linux与RTOS的差异(实时性、资源占用等),结合智能监控终端需求推荐Linux+四核ARM方案(高算力、性价比),并列选Linux的5大优势(生态成熟、多任务支持等)。 案例三设计互联网医院系统用例图(患者、医生等参与

数据知道的博客 1352

python api接口post请求_python+requests进行get、post方法接口测试

简介:Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。一、请求方法类型1、get请求:requests.get(‘url‘...

weixin_39951181的博客 441

C/C++小宇宙代码(完整代码)

C语言实现小宇宙的完整代码。

AIGC 2523

python+requests进行get、post方法接口测试

简介:Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。 一、请求方法类型 1、get请求:requests.get(‘url‘) 2、post请求:requests.post(“url/post”) 3、put请求:requests.

海淀码农 704

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

如何进行get、post方法的接口测试(python+requests)?

简介:Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。 一、请求方法类型 1、get请求:requests.get(‘url‘) 2、post请求:requests.post(“url/post”) 3、put请求:request

QingQingKK的博客 405

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python接口测试jason_浅谈Python接口对json串的处理方法

最近学习Python接口测试,对于接口测试完全小白。大概一周的学习成果进行总结。1.接口测试:目前涉及到的只是对简单单一的接口进行参数传递,得到返回自。2.关于各种概念:2.1 http请求包含post方法、get方法。通过json串或XML传递,但后者未做研究2.2 GET: 浏览器告诉服务器,只获取页面信息,并发送给我。2.3 POST:浏览器告诉服务器想法不一些信息到某个网址,服务器需确保数...

weixin_39552317的博客 163

python requests get post_python+requests进行get、post方法接口测试

简介:Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。一、请求方法类型1、get请求:requests.get(‘url‘...

weixin_39655377的博客 84

【学习】python+requests进行get、post方法接口测试

简介:Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。 一、请求方法类型 1、get请求:requests.get(‘url‘) 2、post请求:requests.post(“url/post”) 3、put请求:requests.

weixin_47719617的博客 82

pythonrequests.get_python+requests进行get、post方法接口测试

简介:Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。一、请求方法类型1、get请求:requests.get(‘url‘...

weixin_26808205的博客 255

python接口返回json处理_浅谈Python接口对json串的处理方法

最近学习Python接口测试,对于接口测试完全小白。大概一周的学习成果进行总结。1.接口测试:目前涉及到的只是对简单单一的接口进行参数传递,得到返回自。2.关于各种概念:2.1 http请求包含post方法、get方法。通过json串或XML传递,但后者未做研究2.2 GET: 浏览器告诉服务器,只获取页面信息,并发送给我。2.3 POST:浏览器告诉服务器想法不一些信息到某个网址,服务器需确保数...

weixin_36444911的博客 1489

python接口测试_python如何做接口测试

每周一总结,一起共同充电第117篇以程序代码的方式实现接口测试,可以处理加解密接口、可以进行复杂业务逻辑处理,可以复杂断言等好处,其实就是灵活。python中requests库,是基于urllib,采用apache2 licensed开源协议等http库,相比与urllib库,requests库更加方便,可以节约我们大量等工作,完全满足http测试需求。安装很简单,只需要pip i...

weixin_39806413的博客 723

Python接口对json串的处理

最近学习Python接口测试,对于接口测试完全小白。大概一周的学习成果进行总结。 1.接口测试: 目前涉及到的只是对简单单一的接口进行参数传递,得到返回自。 2.关于各种概念: 2.1 http请求包含post方法、get方法。通过json串或XML传递,但后者未做研究 2.2 GET: 浏览器告诉服务器,只获取页面信息,并发送给我。 2.3 POST:浏

Shangri 6602

测试人员必须了解Python requests库的使用

requests库官方使用手册地址:http://www.python-requests.org/en/master/;中文使用手册地址:http://cn.python-requests.org/zh_CN/latest/; requests库作者Kenneth Reitz个人主页:https://www.kennethreitz.org/; requests库github地址:https://github.com/requests/requests; requests库下载方法:pip install

Asaasa1的博客 739
上一篇: Postman接口测试
下一篇: python----xlrd模块
XTY00
博客等级 码龄10年 108粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值