1、Httpbin介紹
Httpbin是一個(gè)使用Python + Flask編寫的HTTP Request & Response Service,該服務(wù)主要用于測試 HTTP庫,你可以向他發(fā)送請(qǐng)求,然后他會(huì)按照指定的規(guī)則將你的請(qǐng)求返回(查看你所發(fā)送請(qǐng)求中的信息)。
Httpbin支持HTTP/HTTPS請(qǐng)求,支持所有的HTTP動(dòng)詞,能測試HTTP請(qǐng)求和響應(yīng)的各種信息,比如 cookie、ip、headers 和登錄驗(yàn)證等。能模擬302跳轉(zhuǎn)乃至302跳轉(zhuǎn)的次數(shù),還可以返回一個(gè)HTML文件或一個(gè)XML文件或一個(gè)圖片文件(還支持指定返回圖片的格式)。
Httpbin官方網(wǎng)站:http://httpbin.org/
Httpbin開源地址:https://github.com/postmanlabs/httpbin
2、Httpbin部署
Httpbin是部署在國外的,考慮到有時(shí)無法訪問的情況,也是可以自己在本地搭建部署,非常簡單。
這樣自己部署Httpbin的方式,可以不用和外部的服務(wù)器交互就可以進(jìn)行Http業(yè)務(wù)調(diào)試。
(1)通過pip工具安裝
需要分別安裝Httpbin與guicorn,guicorn是一個(gè)wsgi http服務(wù)器,用來啟動(dòng)Httpbin服務(wù)。
# 進(jìn)入cmd命令行,執(zhí)行如下命令:
# 安裝Httpbin與guicorn
pip install gunicorn
pip install httpbin
# 執(zhí)行如下命令啟動(dòng)服務(wù):
gunicorn httpbin:app
注意:這種方式在Windows系統(tǒng)下不能使用,報(bào)錯(cuò)ImportError: No module named 'fcntl'。(網(wǎng)上查的原因是fcntl模塊在Windows環(huán)境下不被識(shí)別)
(2)本地安裝Httpbin:
# 從github上克隆Httpbin到本地
# 會(huì)直接克隆到cmd命令的當(dāng)前目錄下,如C:\Users\L>下執(zhí)行的命令。
git clone https://github.com/Runscope/httpbin.git
# 安裝httpbin命令
pip install -e httpbin
# 啟動(dòng)httpbin服務(wù)命令
python -m httpbin.core [--port=PORT] [--host=HOST]
# 例如:訪問方位為:http://127.0.0.1:9999/get
python -m httpbin.core --port=9999
親測:在Windows系統(tǒng)下,這種方式能在本地正常啟動(dòng)Httpbin服務(wù)。
3、Httpbin訪問方式
Httpbin的使用方法非常簡單,你只需要把請(qǐng)求的地址修改為httpbin.org即可。
比如:GET請(qǐng)求:http://httpbin.org/get
如果使用本地部署的Httpbin服務(wù),訪問:http://127.0.0.1:[自己設(shè)置的端口號(hào)]
(請(qǐng)看上邊第2點(diǎn))
4、Httpbin常用調(diào)試接口
訪問:http://httpbin.org/#/或者本地Httpbin`服務(wù)http://127.0.0.1:9999/,就會(huì)出現(xiàn)如下界面。
頁面中每個(gè)選項(xiàng)都可以點(diǎn)開,里邊有對(duì)應(yīng)的接口說明。

常用接口列表:
| Endpoint | Descirption |
|---|---|
| /ip | 返回請(qǐng)求者的IP地址。 |
| /user-agent | 返回傳入請(qǐng)求的User-Agent參數(shù)。 |
| /headers | 返回傳入請(qǐng)求的請(qǐng)求頭參數(shù)。 |
| /get | GET請(qǐng)求的提交參數(shù)。 |
| /post | POST請(qǐng)求的提交參數(shù)。 |
| /patch | PATCH請(qǐng)求的提交參數(shù)。 |
| /put | PUT請(qǐng)求的提交參數(shù)。 |
| /delete | DELETE請(qǐng)求的提交參數(shù)。 |
舉例:
(1)返回headers信息
# 調(diào)用接口: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地址
# 調(diào)用接口:https://httpbin.org/ip
{
"origin": "106.35.9.12"
}
(3)返回GET請(qǐng)求的詳細(xì)信息
# 調(diào)用接口: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服務(wù)POST如何使用,請(qǐng)看requests庫POST請(qǐng)求的學(xué)習(xí)文章。
5、總結(jié):
Httpbin服務(wù)就是干什么用的?
就是用于查看我發(fā)出去的請(qǐng)求到底是什么樣子的。你需要查看請(qǐng)求中的那部分信息,就調(diào)用什么樣的接口即可。