<!DOCTYPE html>
< html >
< head >
< meta http-equiv = 'content-type' value = 'text/html;charset=utf8' >
< meta name = 'generator' value = 'Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)' >
< title > go-httpbin(1): HTTP Client Testing Service< / title >
< style type = 'text/css' media = 'all' >
/* style: man */
body#manpage {margin:0;background:#fff;}
.mp {max-width:100ex;padding:0 9ex 1ex 4ex}
.mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
.mp h2 {margin:10px 0 0 0}
.mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
.mp h3 {margin:0 0 0 4ex}
.mp dt {margin:0;clear:left}
.mp dt.flush {float:left;width:8ex}
.mp dd {margin:0 0 0 9ex}
.mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
.mp pre {margin-bottom:20px}
.mp pre+h2,.mp pre+h3 {margin-top:22px}
.mp h2+pre,.mp h3+pre {margin-top:5px}
.mp img {display:block;margin:auto}
.mp h1.man-title {display:none}
.mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
.mp h2 {font-size:16px;line-height:1.25}
.mp h1 {font-size:20px;line-height:2}
.mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
.mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
.mp u {text-decoration:underline}
.mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
.mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
.mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
.mp b.man-ref {font-weight:normal;color:#434241}
.mp pre {padding:0 4ex}
.mp pre code {font-weight:normal;color:#434241}
.mp h2+pre,h3+pre {padding-left:0}
ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
ol.man-decor {width:100%}
ol.man-decor li.tl {text-align:left}
ol.man-decor li.tc {text-align:center;letter-spacing:4px}
ol.man-decor li.tr {text-align:right;float:right}
< / style >
< style type = 'text/css' media = 'all' >
/* style: 80c */
.mp {max-width:86ex}
ul {list-style: None; margin-left: 1em!important}
.man-navigation {left:101ex}
< / style >
< / head >
< body id = 'manpage' >
< div class = 'mp' >
< h1 > go-httpbin(1)< / h1 >
< p > A golang port of the venerable < a href = "https://httpbin.org/" > httpbin.org< / a > HTTP request & response testing service.< / p >
< h2 id = "ENDPOINTS" > ENDPOINTS< / h2 >
< ul >
< li > < a href = "/" > < code > /< / code > < / a > This page.< / li >
< li > < a href = "/absolute-redirect/6" > < code > /absolute-redirect/:n< / code > < / a > 302 Absolute redirects < em > n< / em > times.< / li >
< li > < a href = "/base64/aHR0cGJpbmdvLm9yZw==" > < code > /base64/:value< / code > < / a > Decodes a Base64 encoded string.< / li >
< li > < a href = "/base64/decode/aHR0cGJpbmdvLm9yZw==" > < code > /base64/decode/:value< / code > < / a > Explicit URL for decoding a Base64 encoded string.< / li >
< li > < a href = "/base64/encode/httpbingo.org" > < code > /base64/encode/:value< / code > < / a > Encodes a string into Base64.< / li >
< li > < a href = "/basic-auth/user/passwd" > < code > /basic-auth/:user/:passwd< / code > < / a > Challenges HTTPBasic Auth.< / li >
< li > < a href = "/bearer" > < code > /bearer< / code > < / a > Checks Bearer token header - returns 401 if not set.< / li >
< li > < a href = "/brotli" > < code > < del > /brotli< / del > < / code > < / a > Returns brotli-encoded data.< / del > < i > Not implemented!< / i > < / li >
< li > < a href = "/bytes/1024" > < code > /bytes/:n< / code > < / a > Generates < em > n< / em > random bytes of binary data, accepts optional < em > seed< / em > integer parameter.< / li >
< li > < a href = "/cache" > < code > /cache< / code > < / a > Returns 200 unless an If-Modified-Since or If-None-Match header is provided, when it returns a 304.< / li >
< li > < a href = "/cache/60" > < code > /cache/:n< / code > < / a > Sets a Cache-Control header for < em > n< / em > seconds.< / li >
< li > < a href = "/cookies" > < code > /cookies< / code > < / a > Returns cookie data.< / li >
< li > < a href = "/cookies/delete?k1=&k2=" > < code > /cookies/delete?name< / code > < / a > Deletes one or more simple cookies.< / li >
< li > < a href = "/cookies/set?k1=v1&k2=v2" > < code > /cookies/set?name=value< / code > < / a > Sets one or more simple cookies.< / li >
< li > < a href = "/deflate" > < code > /deflate< / code > < / a > Returns deflate-encoded data.< / li >
< li > < a href = "/delay/3" > < code > /delay/:n< / code > < / a > Delays responding for < em > min(n, 10)< / em > seconds.< / li >
< li > < a href = "/deny" > < code > /deny< / code > < / a > Denied by robots.txt file.< / li >
< li > < a href = "/digest-auth/auth/user/passwd/MD5" > < code > /digest-auth/:qop/:user/:passwd/:algorithm< / code > < / a > Challenges HTTP Digest Auth.< / li >
< li > < a href = "/digest-auth/auth/user/passwd/MD5" > < code > /digest-auth/:qop/:user/:passwd< / code > < / a > Challenges HTTP Digest Auth.< / li >
< li > < a href = "/drip?code=200&numbytes=5&duration=5" > < code > /drip?numbytes=n& duration=s& delay=s& code=code< / code > < / a > Drips data over a duration after an optional initial delay, then (optionally) returns with the given status code.< / li >
< li > < a href = "/encoding/utf8" > < code > /encoding/utf8< / code > < / a > Returns page containing UTF-8 data.< / li >
< li > < a href = "/etag/etag" > < code > /etag/:etag< / code > < / a > Assumes the resource has the given etag and responds to If-None-Match header with a 200 or 304 and If-Match with a 200 or 412 as appropriate.< / li >
< li > < a href = "/forms/post" > < code > /forms/post< / code > < / a > HTML form that submits to < em > /post< / em > < / li >
< li > < a href = "/get" > < code > /get< / code > < / a > Returns GET data.< / li >
< li > < a href = "/gzip" > < code > /gzip< / code > < / a > Returns gzip-encoded data.< / li >
< li > < a href = "/headers" > < code > /headers< / code > < / a > Returns header dict.< / li >
< li > < a href = "/hidden-basic-auth/user/passwd" > < code > /hidden-basic-auth/:user/:passwd< / code > < / a > 404'd BasicAuth.< / li >
< li > < a href = "/html" > < code > /html< / code > < / a > Renders an HTML Page.< / li >
< li > < a href = "/image" > < code > /image< / code > < / a > Returns page containing an image based on sent Accept header.< / li >
< li > < a href = "/image/jpeg" > < code > /image/jpeg< / code > < / a > Returns a JPEG image.< / li >
< li > < a href = "/image/png" > < code > /image/png< / code > < / a > Returns a PNG image.< / li >
< li > < a href = "/image/svg" > < code > /image/svg< / code > < / a > Returns a SVG image.< / li >
< li > < a href = "/image/webp" > < code > /image/webp< / code > < / a > Returns a WEBP image.< / li >
< li > < a href = "/ip" > < code > /ip< / code > < / a > Returns Origin IP.< / li >
< li > < a href = "/ip1" > < code > /ip1< / code > < / a > Returns Origin IP 1.< / li >
< li > < a href = "/ip2" > < code > /ip2< / code > < / a > Returns Origin IP 2.< / li >
< li > < a href = "/ip10" > < code > /ip10< / code > < / a > Returns Origin IP 10.< / li >
< li > < a href = "/ssh" > < code > /ssh< / code > < / a > Returns Origin IP ssh.< / li >
< li > < a href = "/sftp" > < code > /sftp< / code > < / a > Returns Origin IP sftp.< / li >
< li > < a href = "/json" > < code > /json< / code > < / a > Returns JSON.< / li >
< li > < a href = "/links/10" > < code > /links/:n< / code > < / a > Returns page containing < em > n< / em > HTML links.< / li >
< li > < a href = "/range/1024" > < code > /range/1024?duration=s& chunk_size=code< / code > < / a > Streams < em > n< / em > bytes, and allows specifying a < em > Range< / em > header to select a subset of the data. Accepts a < em > chunk_size< / em > and request < em > duration< / em > parameter.< / li >
< li > < a href = "/redirect-to?status_code=307&url=http%3A%2F%2Fexample.com%2F" > < code > /redirect-to?url=foo& status_code=307< / code > < / a > 307 Redirects to the < em > foo< / em > URL.< / li >
< li > < a href = "/redirect-to?url=http%3A%2F%2Fexample.com%2F" > < code > /redirect-to?url=foo< / code > < / a > 302 Redirects to the < em > foo< / em > URL.< / li >
< li > < a href = "/redirect/6" > < code > /redirect/:n< / code > < / a > 302 Redirects < em > n< / em > times.< / li >
< li > < a href = "/relative-redirect/6" > < code > /relative-redirect/:n< / code > < / a > 302 Relative redirects < em > n< / em > times.< / li >
< li > < a href = "/response-headers?Server=httpbin&Content-Type=text%2Fplain%3B+charset%3DUTF-8" > < code > /response-headers?key=val< / code > < / a > Returns given response headers.< / li >
< li > < a href = "/robots.txt" > < code > /robots.txt< / code > < / a > Returns some robots.txt rules.< / li >
< li > < a href = "/status/418" > < code > /status/:code< / code > < / a > Returns given HTTP Status code.< / li >
< li > < a href = "/stream-bytes/1024" > < code > /stream-bytes/:n< / code > < / a > Streams < em > n< / em > random bytes of binary data, accepts optional < em > seed< / em > and < em > chunk_size< / em > integer parameters.< / li >
< li > < a href = "/stream/20" > < code > /stream/:n< / code > < / a > Streams < em > min(n, 100)< / em > lines.< / li >
< li > < a href = "/user-agent" > < code > /user-agent< / code > < / a > Returns user-agent.< / li >
< li > < a href = "/uuid" > < code > /uuid< / code > < / a > Generates a < a href = "https://en.wikipedia.org/wiki/Universally_unique_identifier" > UUIDv4< / a > value.< / li >
< li > < a href = "/xml" > < code > /xml< / code > < / a > Returns some XML< / li >
< / ul >
< h2 id = "DESCRIPTION" > DESCRIPTION< / h2 >
< p > Testing an HTTP Library can become difficult sometimes. < a href = "http://requestb.in" > RequestBin< / a > is fantastic for testing POST requests, but doesn't let you control the response. This exists to cover all kinds of HTTP scenarios. Additional endpoints are being considered.< / p >
< p > All endpoint responses are JSON-encoded.< / p >
< h2 id = "EXAMPLES" > EXAMPLES< / h2 >
< h3 id = "-curl-http-httpbin-org-ip" > $ curl https://httpbingo.org/ip< / h3 >
< pre > < code > {"origin": "24.127.96.129"}
< / code > < / pre >
< h3 id = "-curl-http-httpbin-org-user-agent" > $ curl https://httpbingo.org/user-agent< / h3 >
< pre > < code > {"user-agent": "curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3"}
< / code > < / pre >
< h3 id = "-curl-http-httpbin-org-get" > $ curl https://httpbingo.org/get< / h3 >
< pre > < code > {
"args": {},
"headers": {
"Accept": "*/*",
"Connection": "close",
"Content-Length": "",
"Content-Type": "",
"Host": "httpbin.org",
"User-Agent": "curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3"
},
"origin": "24.127.96.129",
"url": "https://httpbingo.org/get"
}
< / code > < / pre >
< h3 id = "-curl-I-http-httpbin-org-status-418" > $ curl -I https://httpbingo.org/status/418< / h3 >
< pre > < code > HTTP/1.1 418 I'M A TEAPOT
Server: nginx/0.7.67
Date: Mon, 13 Jun 2011 04:25:38 GMT
Connection: close
x-more-info: http://tools.ietf.org/html/rfc2324
Content-Length: 135
< / code > < / pre >
< h3 id = "-curl-https-httpbin-org-get-show_env-1" > $ curl https://httpbingo.org/get?show_env=1< / h3 >
< pre > < code > {
"headers": {
"Content-Length": "",
"Accept-Language": "en-US,en;q=0.8",
"Accept-Encoding": "gzip,deflate,sdch",
"X-Forwarded-Port": "443",
"X-Forwarded-For": "109.60.101.240",
"Host": "httpbin.org",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"User-Agent": "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.83 Safari/535.11",
"X-Request-Start": "1350053933441",
"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.3",
"Connection": "keep-alive",
"X-Forwarded-Proto": "https",
"Cookie": "_gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1; _gauges_unique_hour=1",
"Content-Type": ""
},
"args": {
"show_env": "1"
},
"origin": "109.60.101.240",
"url": "https://httpbingo.org/get?show_env=1"
}
< / code > < / pre >
< h2 id = "AUTHOR" > AUTHOR< / h2 >
< p > Ported to Go by < a href = "https://github.com/mccutchen" > Will McCutchen< / a > .< / p >
< p > From < a href = "https://httpbin.org/" > the original< / a > < a href = "http://kennethreitz.com/" > Kenneth Reitz< / a > project.< / p >
< h2 id = "SEE-ALSO" > SEE ALSO< / h2 >
< p > < a href = "https://httpbin.org/" > httpbin.org< / a > — the original httpbin< / p >
< / div >
< a href = "https://github.com/mccutchen/go-httpbin" > < img style = "position: absolute; top: 0; right: 0; border: 0;" src = "https://camo.githubusercontent.com/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67" alt = "Fork me on GitHub" data-canonical-src = "https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" > < / a >
< / body >
< / html >