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 版权声明:本文为博主原创文章,转载请附上博文链接! 立即下载

相关推荐

贝塞尔曲线基础

贝塞尔曲线于1962年由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由Paul de Casteljau于1959年运用de Casteljau演算法开发,以稳定数值的方法求出贝兹曲线。

YiYeZhiNian的博客 2044

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

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

Smilelulinlin的博客 635

在x86机器上运行jailhouse

jailhouse jaihouse提供了一个demo ,https://github.com/siemens/jailhouse-images可以用于编译一整套可用的demo。 适用于多个平台。编译过程主要参考https://blog.csdn.net/weixin_39541632/article/details/110422345 此demo可以生成多个平台所用的操作系统image。 ...

闲人的专栏 3004

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

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

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

EEGLAB数据预处理基本流程GUI实操指南

按钮,会出现如上图所示的长条形对话框,方框里面是所有电极的名称,这时将需要的剔除的电极选择上,如上图,我选择了 VEOG这个电极(该电极表示是垂直眼电),然后点“OK”,在弹出的对话框中自行确定是否需要修改命名。坏导是指在数据采集时,由于各种原因(如,电极本身问题或阻抗不好等)导致数据记录有问题,但是在后期又特别想要该通道的数据,那么就可以利用插值的方法进行——利用该导联周边的几个电极点的均值作为该导的数据。上图的图是通过IClabel的工具箱进行自动判断的,可以帮助自动识别出哪些是Eye的成分。

fdgdf5535的博客 6394

微信小程序如何集成EasyRTC实现零插件音视频通话?5步搞定完整接入流程

本文详细介绍了如何在微信小程序中集成EasyRTC SDK,实现零插件的实时音视频通话功能。通过5个关键步骤,包括环境配置、SDK初始化、核心功能实现、性能优化和问题排查,帮助开发者快速完成WebRTC技术在小程序中的落地应用,解决微信小程序原生不支持实时音视频通信的技术难题。

weixin_28340315的博客 144

python 发送http请求

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

缘故的博客 799

STM32U575 ADC+DMA+UART数据采集实战:CubeMX配置避坑与代码实现

在嵌入式开发中,ADC采集与DMA传输是提升系统实时性的关键技术。通过DMA将ADC数据直接搬运到内存,可大幅降低CPU占用,实现高效连续采样。结合UART的DMA发送,能进一步解放CPU,适用于工业采集、信号监测等场景。本文以STM32U575为例,详解CubeMX中ADC、DMA、UART的配置要点,包括时钟树、DMAMUX映射、循环模式等,并给出代码实现与常见问题排查,帮助开发者快速构建稳定的数据采集链路。

weixin_29194255的博客 170

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

Linux 系统管理员必备:Chrome 企业版离线部署全攻略(含 RPM/DEB 双版本)

本文详细介绍了Linux系统管理员如何离线部署Chrome企业版,涵盖RPM和DEB双版本。从获取官方离线安装包到静默安装、权限配置及企业级策略管理,提供全流程解决方案,特别适合Ubuntu等DEB系系统管理员参考。

f9g0h的博客 484

信捷XD/XL系列PLC与C#通信实战:Modbus-RTU协议详解(附完整代码)

本文详细介绍了信捷XD/XL系列PLC与C#通过Modbus-RTU协议实现高效通信的实战指南。从硬件连接到软件配置,再到核心通信功能的实现与优化,提供了完整的代码示例和工业级应用建议,帮助开发者快速构建稳定的自动化通信系统。

weixin_28292761的博客 511

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

网络安全 | 企业网络安全的十大挑战及解决方案

网络安全 | 企业网络安全的十大挑战及解决方案,随着信息技术的飞速发展,企业数字化转型进程不断加速,网络安全问题日益成为企业运营与发展面临的关键挑战。本文深入剖析企业网络安全的十大挑战,包括网络攻击日益复杂、数据泄露风险、内部威胁、物联网安全、云安全、合规性要求、移动办公安全、供应链安全、人才短缺以及安全预算有限等,并针对每个挑战详细阐述相应的解决方案,旨在为企业构建全面、有效的网络安全体系提供指导与参考,助力企业在复杂多变的网络环境中保障自身信息资产安全,实现可持续发展。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 4万+

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

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

如何进行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

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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

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

weixin_39552317的博客 163

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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、付费专栏及课程。

余额充值