A simple HTTP Request & Response Service (written in Python + Flask).
一个简单的 HTTP 请求和回复测试服务。
详见: https://httpbin.org/
http 开发调试
httpbin 提供了 GET/PUT/POST/PATCH/DELETET
常见方法,可以把请求头、参数等返回,类似 Echo 服务。方便调试 http 请求。
http 库测试
使用开源或者自己项目封装的 http 请求库,可以把 httpbin 作为服务端,测试各种场景。
除了在线的 https://httpbin.org/,也可以本地部署。
云原生示例服务
可作为演示服务,测试平台功能。例如,isito 就有 httpbin sample 服务,用来实验 istio 各种特性
详见: https://github.com/istio/istio/tree/master/samples/httpbin
/get 接口
/put, /post, /patch
还会打印出请求体数据
curl 'https://httpbin.org/get?paramA=aa'
{
"args": {
"paramA": "aa"
},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "curl/7.64.1",
"X-Amzn-Trace-Id": "Root=1-6107dcac-1d6d3fb32f67d8184c184992"
},
"origin": "111.207.117.50",
"url": "https://httpbin.org/get?paramA=aa"
}
/status/{codes} 接口
用来返回特定的状态码
curl 'https://httpbin.org/status/418'
-=[ teapot ]=-
_...._
.' _ _ `.
| ."` ^ `". _,
\_;`"---"`|//
| ;/
\_ _/
`"""`
/ip 接口
返回原始 ip
curl 'https://httpbin.org/ip'
{
"origin": "xxx.xxx.xxx.xxx"
}
/delay/{delay} 接口
延时一定时间返回
还有很多测试接口,可在官网查看
httpbin 的 github https://github.com/postmanlabs/httpbin 在 2018.11 后就没有更新了,有一些需求和 bug 都没有解决。
无意将发现了 go-httpbin, 是一个只使用 golang 标准库实现的 httpbin。
所以我 fork 了 mccutchen/go-httpbin 项目,并添加了一些特性。
详见: https://github.com/chinaran/go-httpbin
可以直接使用 docker 尝试运行
docker run -p 8080:80 ghcr.io/chinaran/go-httpbin:1.2-alpine3.13
示例:(请求注入了 sidecar 的 httpbin 服务)
kubectl -n ran-test exec -it client-54d574b9b-6w9xc -- curl http://go-httpbin/get
{
"envs": {
"HOSTNAME": "go-httpbin-6f55bbcfcd-skrxl"
},
"args": {},
"headers": {
"Accept": "*/*",
"Content-Length": "0",
"Host": "go-httpbin",
"User-Agent": "curl/7.76.1",
"X-B3-Parentspanid": "d4ae8aad7301da2d",
"X-B3-Sampled": "1",
"X-B3-Spanid": "68b5055ffd105f5b",
"X-B3-Traceid": "26e3ee5a3196b1bcd4ae8aad7301da2d",
"X-Client-Name": "client",
"X-Client-Namespace": "ran-test",
"X-Envoy-Attempt-Count": "1",
"X-Forwarded-Client-Cert": "By=spiffe://cluster.local/ns/ran-test/sa/default;Hash=0cb9c538a64d9f747c86731252bd28d6e9121c7cf0be731f2484fd3b4a1af57f;Subject=\"\";URI=spiffe://cluster.local/ns/ran-test/sa/default",
"X-Forwarded-Proto": "http",
"X-Request-Id": "1f2a3700-1bdf-9a0a-9091-2c6aba324606"
},
"origin": "127.0.0.1:46756",
"url": "http://go-httpbin/get"
}