文章插图
使用 HTTPie 调试 API,这是一个用 Python 写的易用的命令行工具 。HTTPie 是一个非常易用、易于升级的 HTTP 客户端 。它的发音为 “aitch-tee-tee-pie” 并以 http 命令运行,它是一个用 Python 编写的来用于访问 Web 的命令行工具 。
-- Moshe Zadka(作者)
由于这是一篇关于 HTTP 客户端的指导文章,因此你需要一个 HTTP 服务器来试用它 。在这里,访问 httpbin.org ,它是一个简单的开源 HTTP 请求和响应服务 。httpbin.org 网站是一种测试 Web API 的强大方式,并能仔细管理并显示请求和响应内容,不过现在让我们专注于 HTTPie 的强大功能 。
Wget 和 cURL 的替代品你可能听说过古老的 Wget 或稍微新一些的 cURL 工具,它们允许你从命令行访问 Web 。它们是为访问网站而编写的,而 HTTPie 则用于访问 Web API 。
网站请求发生在计算机和正在阅读并响应它所看到的内容的最终用户之间,这并不太依赖于结构化的响应 。但是,API 请求会在两台计算机之间进行结构化调用,人并不是该流程内的一部分,像 HTTPie 这样的命令行工具的参数可以有效地处理这个问题 。
安装 HTTPie有几种方法可以安装 HTTPie 。你可以通过包管理器安装,无论你使用的是 brew、apt、yum 还是 dnf 。但是,如果你已配置 virtualenvwrApper ,那么你可以用自己的方式安装:
$ mkvirtualenv httpie...(httpie) $ pip install httpie...(httpie) $ deactivate$ alias http=~/.virtualenvs/httpie/bin/http$ http -b GET https://httpbin.org/get{ "args": {}, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "HTTPie/1.0.2" }, "origin": "104.220.242.210, 104.220.242.210", "url": "https://httpbin.org/get"}通过将 http 别名指向为虚拟环境中的命令,即使虚拟环境在非活动状态,你也可以运行它 。你可以将 alias 命令放在 .bash_profile 或 .bashrc 中,这样你就可以使用以下命令升级 HTTPie:
$ ~/.virtualenvs/httpie/bin/pip install -U pip使用 HTTPie 查询网站HTTPie 可以简化查询和测试 API 。上面使用了一个选项,-b(即 --body) 。没有它,HTTPie 将默认打印整个响应,包括响应头:
$ http GET https://httpbin.org/getHTTP/1.1 200 OKAccess-Control-Allow-Credentials: trueAccess-Control-Allow-Origin: *Connection: keep-aliveContent-Encoding: gzipContent-Length: 177Content-Type: application/jsonDate: Fri, 09 Aug 2019 20:19:47 GMTReferrer-Policy: no-referrer-when-downgradeServer: NginxX-Content-Type-Options: nosniffX-Frame-Options: DENYX-XSS-Protection: 1; mode=block{ "args": {}, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "HTTPie/1.0.2" }, "origin": "104.220.242.210, 104.220.242.210", "url": "https://httpbin.org/get"}这在调试 API 服务时非常重要,因为大量信息在响应头中发送 。例如,查看发送的 cookie 通常很重要 。httpbin.org 提供了通过 URL 路径设置 cookie(用于测试目的)的方式 。以下设置一个标题为 opensource, 值为 awesome 的 cookie:
$ http GET https://httpbin.org/cookies/set/opensource/awesomeHTTP/1.1 302 FOUNDAccess-Control-Allow-Credentials: trueAccess-Control-Allow-Origin: *Connection: keep-aliveContent-Length: 223Content-Type: text/html; charset=utf-8Date: Fri, 09 Aug 2019 20:22:39 GMTLocation: /cookiesReferrer-Policy: no-referrer-when-downgradeServer: nginxSet-Cookie: opensource=awesome; Path=/X-Content-Type-Options: nosniffX-Frame-Options: DENYX-XSS-Protection: 1; mode=block<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><title>Redirecting...</title><h1>Redirecting...</h1><p>You should be redirected automatically to target URL:<a href=https://www.isolves.com/it/cxkf/bk/2020-08-26/"/cookies">/cookies. If not click the link.注意 Set-Cookie: opensource=awesome; Path=/ 的响应头 。这表明你预期设置的 cookie 已正确设置,路径为 / 。另请注意,即使你得到了 302 重定向,http 也不会遵循它 。如果你想要遵循重定向,则需要明确使用 --follow 标志请求:
$ http --follow GET https://httpbin.org/cookies/set/opensource/awesomeHTTP/1.1 200 OKAccess-Control-Allow-Credentials: trueAccess-Control-Allow-Origin: *Connection: keep-aliveContent-Encoding: gzipContent-Length: 66Content-Type: application/jsonDate: Sat, 10 Aug 2019 01:33:34 GMTReferrer-Policy: no-referrer-when-downgradeServer: nginxX-Content-Type-Options: nosniffX-Frame-Options: DENYX-XSS-Protection: 1; mode=block{ "cookies": { "opensource": "awesome" }}
推荐阅读
- 让双系统使用更轻松
- 猴春茶业加盟信息,正皓茶业全国招商火热进行中
- 蓝翼茗茶招商加盟信息,正皓茶业全国招商火热进行中
- 如果美国在朝鲜使用核弹 朝鲜战争如果美国使用核弹中国能扛得住吗
- 中小企业如何利用网站来进行营销?
- WIN10系统刚重装需要进行哪些优化?
- 嘉盛茶业招商加盟信息,正皓茶业全国招商火热进行中
- 安卓|谷歌确认!Android 13最大改进 解决杀后台:CPU/内存使用率暴降
- Centos8.2 使用 Openldap 认证登录
- 如何使用Word里的论文版式功能