博客
关于我
『居善地』接口测试 — 6、Httpbin服务介绍
阅读量:701 次
发布时间:2019-03-17

本文共 4099 字,大约阅读时间需要 13 分钟。

目录

1、Httpbin服务介绍

Httpbin是使用Python + Flask语言编写的一个HTTP Request & Response Service的简单服务,该服务主要用于测试 HTTP 请求,你可以向他发送请求,然后他会按照指定的规则将你的请求返回(查看你所发送请求中的全部请求信息和响应信息)。

Httpbin支持HTTP/HTTPS请求,支持所有的HTTP动词,能测试HTTP请求和响应的各种信息,比如 cookieipheaders 和登录验证等。能模拟302跳转乃至302跳转的次数,还可以返回一个HTML文件或一个XML文件或一个图片文件(还支持指定返回图片的格式)。

Httpbin接口地址:或者

Httpbin开源地址:

2、在Windows系统中部署Httpbin服务

Httpbin是部署在国外的,考虑到有时无法访问的情况,也是可以自己在本地搭建部署,非常简单。

这样本地部署Httpbin的方式,可以不用和外部的服务器交互就可以进行HTTP业务的调试。

(1)通过pip工具安装

需要分别安装Httpbinguicornguicorn是一个wsgi http服务器,用来启动Httpbin服务。

# 进入cmd命令行,执行如下命令:# 安装Httpbin与guicornpip install gunicornpip install httpbin# 执行如下命令启动服务:gunicorn httpbin:app

注意:这种方式在Windows系统下不能使用,报错ImportError: No module named 'fcntl'。(网上查的原因是fcntl模块在Windows环境下不被识别)

(2)本地安装Httpbin

# 从github上克隆Httpbin到本地# 会直接克隆到cmd命令的当前目录下,如C:\Users\L>下执行的命令。git clone https://github.com/Runscope/httpbin.git# 安装httpbin命令pip install -e httpbin# 启动httpbin服务命令python -m httpbin.core [--port=PORT] [--host=HOST]# 例如:访问方位为:http://127.0.0.1:9999/getpython -m httpbin.core --port=9999

亲测:在Windows系统下,这种方式能在本地正常启动Httpbin服务。

3、在Linux系统中部署Httpbin服务

Linux系统中我们通常使用Docker的方式部署Httpbin服务,这样非常的方便简单。

一共只有两步就可以完成:第一,拉取镜像;第二,启动镜像。

(关于Docker的安装,请看Docker部分的相关文章,这里就不在介绍了)

(1)拉取Httpbin服务的Docker镜像到本地

[root@localhost ~]# docker pull kennethreitz/httpbinUsing default tag: latestlatest: Pulling from kennethreitz/httpbin473ede7ed136: Pull complete c46b5fa4d940: Pull complete 93ae3df89c92: Pull complete 6b1eed27cade: Pull complete 0373952b589d: Pull complete 7b82cd0ee527: Pull complete a36b2d884a89: Pull complete Digest: sha256:599fe5e5073102dbb0ee3dbb65f049dab44fa9fc251f6835c9990f8fb196a72bStatus: Downloaded newer image for kennethreitz/httpbin:latestdocker.io/kennethreitz/httpbin:latest

(2)启动本地Httpbin服务的Docker镜像

[root@localhost ~]# docker run -p 80:80 kennethreitz/httpbin[2021-05-20 02:13:00 +0000] [1] [INFO] Starting gunicorn 19.9.0[2021-05-20 02:13:00 +0000] [1] [INFO] Listening at: http://0.0.0.0:80 (1)[2021-05-20 02:13:00 +0000] [1] [INFO] Using worker: gevent[2021-05-20 02:13:00 +0000] [9] [INFO] Booting worker with pid: 9

当然我们可以后台运行Docker镜像,执行命令:docker run -d -p 9999:80 kennethreitz/httpbin

(3)浏览器中访问本地Httpbin服务

192.168.134.129为Linux服务器或者虚拟机的地址。

如下图所示:

这样我们就可以在本地使用Httpbin接口服务了,速度会非常的快。

4、Httpbin访问方式

Httpbin的使用方法非常简单,你只需要把请求的地址修改为httpbin.org即可。

例如GET请求:http://httpbin.org/get

如果使用本地部署的Httpbin服务,访问:http://127.0.0.1:[自己设置的端口号]/请求路径

(请看上边第2点)

5、Httpbin常用调试接口

访问:http://httpbin.org/#/或者本地Httpbin服务http://127.0.0.1:9999/,就会出现如下界面。

页面中每个选项都可以点开,里边有对应的接口说明。

常用接口列表

Endpoint Descirption
/ip 返回请求者的IP地址。
/user-agent 返回传入请求的User-Agent参数。
/headers 返回传入请求的请求头参数。
/get GET请求的提交参数。
/post POST请求的提交参数。
/patch PATCH请求的提交参数。
/put PUT请求的提交参数。
/delete DELETE请求的提交参数。

举例

(1)返回headers信息

# 调用接口:https://httpbin.org/headers{  "headers": {    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",     "Accept-Encoding": "gzip, deflate, br",     "Accept-Language": "zh-CN,zh;q=0.9",     "Host": "httpbin.org",     "Upgrade-Insecure-Requests": "1",     "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36",     "X-Amzn-Trace-Id": "Root=1-5ff1a4f7-69a84fca0693b09e28d214b0"  }}

(2)返回访问此链接的IP地址

# 调用接口:https://httpbin.org/ip{  "origin": "106.35.9.12"}

(3)返回GET请求的详细信息

# 调用接口:https://httpbin.org/get?department=1{  "args": {    "department": "1"  },   "headers": {    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",     "Accept-Encoding": "gzip, deflate, br",     "Accept-Language": "zh-CN,zh;q=0.9",     "Host": "httpbin.org",     "Upgrade-Insecure-Requests": "1",     "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400",     "X-Amzn-Trace-Id": "Root=1-5ff1a59b-4e514a40023721d276ae07eb"  },   "origin": "106.35.9.12",   "url": "https://httpbin.org/get?department=1"}

说明:如果需要看Httpbin服务POST如何使用,请看requests库POST请求的学习文章。

6、总结:

Httpbin服务就是干什么用的?

就是用于查看我发出去的请求到底是什么样子的。你需要查看请求中的哪一部分信息,就调用什么样的接口即可。

转载地址:http://zcvez.baihongyu.com/

你可能感兴趣的文章
Node-RED通过npm安装的方式对应卸载
查看>>
node-request模块
查看>>
node-static 任意文件读取漏洞复现(CVE-2023-26111)
查看>>
Node.js 8 中的 util.promisify的详解
查看>>
node.js debug在webstrom工具
查看>>
Node.js Event emitter 详解( 示例代码 )
查看>>
Node.js GET、POST 请求是怎样的?
查看>>
Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
查看>>
Node.js RESTful API如何使用?
查看>>
node.js url模块
查看>>
Node.js Web 模块的各种用法和常见场景
查看>>
Node.js 之 log4js 完全讲解
查看>>
Node.js 函数是什么样的?
查看>>
Node.js 函数计算如何突破启动瓶颈,优化启动速度
查看>>
Node.js 切近实战(七) 之Excel在线(文件&文件组)
查看>>
node.js 初体验
查看>>
Node.js 历史
查看>>
Node.js 回调函数的原理、使用方法
查看>>
Node.js 在个推的微服务实践:基于容器的一站式命令行工具链
查看>>
Node.js 实现类似于.php,.jsp的服务器页面技术,自动路由
查看>>