HTTPie的安装及使用

  • 时间:
  • 浏览:0
  • 来源:大发彩神app—大发彩神8苹果版

有之后私钥未蕴藏在cert文件中,您能也能了通过以下土办法传递密钥文件的路径--cert-key

您也能也能了直接从masterGitHub上的分支安装最新的未发布的开发版本。这是未来稳定发布的一项工作,有之后体验有之后也能了了顺利。

使用基本认证:

下载文件:

您能也能了使用\转义不应用作分隔符(或其每段)的字符。类似,foo\==bar将成为数据键/值对(foo=bar)而也有URL参数。

有之后HTTPie仍在大力开发中,现有的命令行语法和某些--OPTIONS有之后会在HTTPie到达其最终版本也能了 稍微改变1.0。所有更改都记录在 更改日志中。

它们是URL后指定的键/值对。在同時 所有的优点是它们成为被发送的实际请求的一每段,我们我们我们 的类型由使用的分隔符来分辨: :=:===@=@,和:=@。用的哪此 @期望的那样值的文件路径。

有之后您总是在请求中除理cookie,也能了您很有之后会欣赏会话功能。

BSD-3-Clause:LICENSE。

另见http --help

作为优化,仅当响应主体是输出的一每段时才从服务器下载响应主体。这与执行HEAD 请求类似,不同之地处于它适用于您使用的任何HTTP土办法。

此外,最好将默认300秒覆盖--timeout到适合您的东西。

有之后您还希望查看里边请求/响应,也能了也能也能了使用该--all选项:

所有会话数据(包括凭据,cookie数据和自定义标头)都以纯文本格式存储。这原应 着还能也能了在文本编辑器中手动创建和编辑会话文件 - 它们是常规JSON。这也原应 着任何有权访问会话文件的人都能也能了阅读它们。

此外,支持localhost的类似curl的简写。这原应 着,类似,:30000将扩展为http://localhost:30000 有之后省略端口,则假定端口3000。

HTTPie执行请求所需的唯一信息是URL。默认http://能也能了从参数中省略 http example.org工作得很好。

JSON是现代Web服务的通用语言,它也是HTTPie默认使用的 隐式内容类型

您的~/.netrc文件中的身份验证信息也受到尊重:

HTTPie使用简单的JSON配置文件。

使用该--download, -d标志启用时,响应标头将打印到终端(stderr),并在响应正文保存到文件时显示进度条。

使用--ssl=<PROTOCOL>指定要使用的协议版本。这将默认为SSL v2.3,它将协商服务器和OpenSSL安装支持的最高协议。可用的协议都ssl2.3ssl3tls1tls1.1tls1.2tls1.3。(实际可用的协议集有之后因OpenSSL安装而异。)

要使用客户端证书进行SSL通信,能也能了使用以下命令传递cert文件的路径--cert

默认情形下,HTTPie仅输出最终响应,并打印整个响应消息(标题和正文)。您能也能了通过以下几条选项控制应该打印的内容:

HTTPie默认做了几件事,以使其终端输出易于阅读。

看起来类似于发送的实际Request-Line内容:

原应 是将HTTPie的管道输出到也能了 进程,下载文件也能了额外的标志。大多数情形下,当重定向输出时,也能了原始响应体才有意义。

要发送蕴藏空值的标头,请使用Header;

从现在之后之后刚开始,您能也能了通过名称来引用会话。当您选折 再次使用会话时,将自动设置任何也能了 指定的身份验证或HTTP标头:

还提供MacPorts 端口

在你的~/.bash_profile

使用命名会话在对同一主机的请求之间建立某些方面或通信持久性:

有之后您使用HTTPie 低于2.7.9的Python版本(能也能了验证http --debug)有之后需用与使用SNI(服务器名称指示)的服务器通信,则需用安装某些某些依赖项:

要更改最大300重定向的默认限制,请使用以下 --max-redirects=<limit>选项:

提交表单与发送JSON请求非常类似。通常唯一的区别是加带--form, -f选项,这确保数据字段被序列化为,并Content-Type设置为, application/x-www-form-urlencoded; charset=utf-8。能也能了通过配置文件使表单数据成为隐式内容类型而也有JSON 。

HTTPie对重定向输出使用一组不同的默认值,而也有 终端输出。差异是:

从文件重定向:

使用Github API发布对疑问的评论与认证:

见claudiatd / httpie-artwork

您能也能了为每个主机创建另4个或多个命名会话。类似,这是给你创建另4个名为新的会话user1example.org

Homebrew安装的HTTPie开箱即用SOCKS代理支持。要为非Homebrew安装启用SOCKS代理支持,您需用requests[socks]使用pip以下土办法手动安装:

假设有另4个API在更新时返回整个资源,但您只对响应标头感兴趣,以便在更新后查看情形代码:

请注意,元素的顺序和语法都非常类似,有之后也能了一小每段命令用于控制HTTPie,有之后不直接对应于请求的任何每段(这里之后-f 要求HTTPie发送表单)请求)。

您能也能了通过--proxy每个协议的参数指定要使用的代理(在跨协议重定向的情形下蕴藏在值中):

HTTP客户端将cookie作为常规HTTP标头发送到服务器。这原应 着,HTTPie不提供任何指定cookie的特殊语法 - 使用通常的 Header:Value表示法:

另4个Array(默认为空)默认选项,应该应用于每次HTTPie调用。

您甚至能也能了使用HTTPie将Web服务连接在同時 :

发送另4个cookie:

有之后您的命令蕴藏某些数据请求项,则默认情形下将它们序列化为JSON对象。HTTPie也有自动设置以下标头,这另4个标头都能也能了被覆盖:

非字符串字段使用:=分隔符,允许您将原始JSON嵌入到结果对象中。文本和原始JSON文件也能也能了使用=@和嵌入到字段中:=@

HTTPie设置了几条默认标头:

要创建或重用某些会话,只需指定某些名称:

终端输出禁止二进制数据,也能了 能也能了安全地对发送回二进制数据的URL执行请求。二进制数据在重定向时也被抑制,有之后被美化输出。一旦我们我们我们 知道响应主体是二进制的,连接就会关闭

下载文件并通过重定向输出保存:

验证现在我们我们我们 有 当前的开发版本标识符 带-dev后缀,类似:

有之后地处另4个或多个文件字段,则序列化和内容类型为 multipart/form-data

要跳过主机的SSL证书验证,您能也能了传递--verify=no (默认为yes):

能也能了将某些身份验证机制安装为插件。它们能也能了在Python Package Index中找到。这里有几条选折 :

JSON文件蕴藏具有以下键的对象:

打印请求和响应标头:

要查看所有HTTP通信,即最终请求/响应以及任何有之后的里边请求/响应,请使用该--all 选项。里边HTTP通信包括重定向(with --follow),使用HTTP摘要认证时的第另4个未授权请求(--auth=digest)等。

METHOD从命令中省略参数时,HTTPie默认为GET(也能了请求数据)或POST(蕴藏请求数据)。

默认情形下,HTTPie发出的每个请求都全部独立于同一主机的任何先前请求。

您能也能了使用echo简单数据:

你几乎能也能了立即看后也能了 的东西:

要除理HTTPie读取stdin数据,您能也能了使用该 --ignore-stdin选项。

有之后pip

强制着色和格式化,并在less寻呼机中显示请求和响应 :

您能也能了使用--default-scheme <URL_SCHEME>该选项为除HTTP之外的某些协议创建快捷土办法:

在macOS上,HTTPie能也能了通过Homebrew安装 (推荐的):

Jakub Roztocil (@jakubroztocil)创建了HTTPie,哪此优秀人才 做出了贡献。

所有某些输出选项也有引擎盖下,之后更强大的快捷土办法--print, -p。它接受另4个字符串,每个字符代表HTTP交换的特定每段:

简单的例子:

通用安装土办法(适用于Windows,Mac OS X,Linux,...,并始终提供最新版本)是使用pip:

您还能也能了将响应正文重定向到也能了 进程,同時 响应标头和进度仍显示在终端中:

设置自定义Host标头以除理丢失的DNS记录:

在引擎盖下,HTTPie使用这另4个惊人的库:

HTTPie(发音为aitch-tee-tee-pie)是另4个命令行HTTP客户端。其目标是使与Web服务的CLI交互尽有之后人性化。它提供了另4个简单的http命令,允许使用简单自然的语法发送任意HTTP请求,并显示彩色输出。HTTPie可用于测试,调试以及通常与HTTP服务器交互。

您能也能了使用以下命令测试SNI支持:

您还能也能了使用--verify=<CA_BUNDLE_PATH>设置自定义CA捆绑包路径:

请参阅使用以下输出选项之一发送的请求:

有之后也能了这种选项,HTTPie似乎会挂起,这是另4个常见的疑问。地处的情形是,类似从cron作业调用HTTPie时,stdin未连接到终端。有之后,重定向输入的规则适用,即HTTPie之后之后刚开始读取它,期望请求体将被传递。有之后既然也能了数据之后会EOF,它会被卡住。有之后,除非您将某些数据传递给HTTPie,有之后应在脚本中使用此标志。

当前支持的身份验证方案是Basic和Digest(有关更多信息,请参阅auth plugins)。有另4个控制身份验证的标志:

您也能也能了通过配置环境变量代理HTTP_PROXYHTTPS_PROXY,和底层的请求图书馆将它们捡起来为好。有之后要禁用通过某些主机的环境变量配置的代理,能也能了在中指定它们NO_PROXY

着实也支持Python 2.7,但强烈建议尽有之后针对最新的Python 3.x安装HTTPie。这将确保某些较新的HTTP功能,如SNI(服务器名称指示),开箱即用。从版本0.9.4之后之后刚开始,Python 3是Homebrew安装的默认设置。要查看HTTPie使用的版本,请运行http --debug

此外,应用以下格式:

在OS X上,您能也能了使用以下命令发送剪贴板的内容pbpaste

请注意,@它用于模拟文件上载表单字段,而 =@之后将文件内容嵌入为常规文本字段值。

有之后,HTTPie还通过该--session=SESSION_NAME_OR_PATH选项支持持久会话。在会话中,自定义HTTP标头(以Content-或开头的标头除外If-), 身份验证和cookie (由服务器手动指定或发送)在对同一主机的请求之间保持不变。

提交表格:

重定向的替代土办法stdin是指定文件名(as @/path/to/file),其内容的使用土办法与其来源相同stdin

--verbose 通常可用于调试请求和联 成文档示例:

请使用以下支持渠道:

下载Octocat的图像,使用ImageMagick调整大小,将其上传到某些地方:

传递请求数据的通用土办法是通过重定向stdin (标准输入) - 管道。哪此数据被缓冲,有之后也能了进一步除理用作请求主体。使用管道有多种有用的土办法:

stdin在非交互式调用期间,通常不需用自动读取的默认行为。您很有之后希望使用该--ignore-stdin选项来禁用它。

(有之后pip有之后一种原应 安装失败,您能也能了尝试 easy_install httpie作为后备。)

有之后未提供via --output, -o,则输出文件名将由Content-Disposition(有之后可用)或URL和 Content-Type。有之后猜测的文件名有之后地处,HTTPie会为其加带另4个唯一的后缀。

默认情形下,无需遵循HTTP重定向,只显示第另4个响应:

使用重定向输入上传文件:

HTTPie具有下载模式,其行为类似于wget

有之后您发现自己在终端上手动构建蕴藏查询字符串参数的URL,您有之后会欣赏param==value附加URL参数的语法。有了它,您无需担心转义& shell 的分隔符。此外,参数值中的特殊字符也将自动转义(HTTPie有之后要求URL已被转义)。要HTTPie logo在Google图片上搜索,您能也能了使用以下命令:

有某些不同的请求项类型提供了一种方便的机制来指定HTTP标头,简单的JSON和表单数据,文件和URL参数。

命名会话的数据存储在目录中的JSON文件中 ~/.httpie/sessions/<host>/<name>.json%APPDATA%\httpie\sessions\<host>\<name>.json在Windows上)。

本文根据原文(https://httpie.org/doc) 进行了翻译,便于里边查询和使用。

语法突出先 示应用于HTTP标头和正文(有意义的地方)。--style有之后您不喜欢默认颜色方案,能也能了通过该选项选折 首选颜色方案(请参阅$ http --help有之后的值)。

通常有必要引用哪此值,类似foo='bar baz'

自定义HTTP土办法,HTTP标头和JSON数据:

默认情形下,里边请求/响应根据--print, -p(及其上述快捷土办法)进行格式化 。有之后您想更改它,请使用该--history-print, -P选项。它采用相同的参数,--print, -p但仅适用于里边请求。

请注意,使用此语法时,命令在发送繁复数据也有变得难以除理。在这种情形下,使用重定向输入总是更好:

见CHANGELOG。

要设置自定义头,您能也能了使用以下Header:Value表示法:

类似,您能也能了使用此选项更改默认样式和输出选项:"default_options": ["--, "--body"]也能了 有用的默认选项有之后是"--session=default"使HTTPie始终使用会话(default将自动使用另4个名称)。有之后,您能也能了通过加带--form到列表将隐式请求内容类型从JSON更改为表单。

语法:

用法与某些类型的代理相同:

要指示HTTPie遵循响应Location标头300x并显示最终响应,请使用以下--follow, -F选项:

Prettified流媒体响应:

您能也能了使用该--stream, -S标志来地处两件事:

发送多个cookie(注意引用标题以除理shell解释;):

其中另4个选项可用于控制输出除理:

命令参数的语法与通过线路发送的实际HTTP请求密切对应。它的优点是易于记忆和阅读。通常能也能了通过内联请求元素将HTTP请求转换为HTTPie参数列表。类似,比较此HTTP请求:

-R标志告诉less我们我们我们 解释蕴藏HTTPie输出的颜色转义序列。

有之后--output, -o已指定,则能也能了使用该--continue, -c选项恢复每段下载 。这仅适用于支持Range请求和206 Partial Content响应的服务器 。有之后服务器不支持,则只需下载整个文件:

您能也能了使用cat在终端上输入多行数据:

Hello World:

它的优点Content-Type 是根据文件扩展名自动将标头设置为适当的值。类似,以下请求发送该XML文件的逐字内容Content-Type: application/xml

传递数据stdin也能了与命令行中指定的数据字段组合:

您能也能了通过将以下内容加带到以下内容来创建用于调用蕴藏彩色和分页输出的HTTPie的快捷土办法~/.bash_profile

请参阅CONTRIBUTING.rst。

无论您有无正在发送数据 ,都能也能了使用--json, -j显式设置(这是通过常用标题符号设置标题的快捷土办法:) 。此外,即使错误或未知,HTTPie也会尝试检测JSON响应 。Accept`application/jsonhttp url Accept:'application/json, */*'Content-Type`text/plain

HTTPie使用以下工具非常好地运行:

请注意,数据字段也有指定请求数据的唯一土办法: 重定向输入是一种传递任意请求数据的机制。

这种种模式--pretty=all(默认为终端)和--pretty=none (默认为重定向输出)允许用户友好的交互式使用和脚本使用,其中HTTPie用作通用HTTP客户端。

除了Host能也能了覆盖其中任何另4个,其中某些未设置。

使用发送它的HTTPie命令:

响应下载并以块的形式打印,允许在不使用那么来越多内存的情形下进行流式传输和大型文件下载。有之后,当应用 颜色和格式时,整个响应将被缓冲,有之后立即除理。

下载文件wget样式:

要在创建现有会话文件而不从请求/响应交换中更新它,请通过相应的土办法指定会话名称 --session-read-only=SESSION_NAME_OR_PATH

配置文件的默认位置是~/.httpie/config.json (或%APPDATA%\httpie\config.json在Windows上)。能也能了通过设置HTTPIE_CONFIG_DIR 环境变量来更改config目录位置。查看确切的位置运行http --debug

里边的请求与提交以下HTML表单的请求相同:

您也能也能了直接指定会话文件的路径,而也有名称。这允许跨多个主机重用会话:

在macOS上,您能也能了使用Homebrew安装它:

输出在更小的块中刷新而也能了任何缓冲,这使得HTTPie的行为类似于tail -fURL。即使输出被美化,流也会启用:它将应用于响应的每一行并立即刷新。也能了 就能也能了为长期地处的请求提供另4个很好的输出,类似另4个Twitter流API。

从shell脚本使用HTTPie时,设置--check-status标志会很方便 。它指示HTTPie另4个错误退出,有之后HTTP情形之一3xx4xx5xx。退出情形将分别为3(除非--follow已设置)4,或5

有之后任何字段名称或标题以减号(类似-fieldname)开头,则需用将所有此类项目装入 特殊标记也能了 ,--以除理与--arguments以下内容混淆:

有之后也能了 进程的输出:

大多数Linux发行版提供了能也能了使用系统包管理器安装的包,类似:

HTTPie在此自动存储其每段元数据。请无需改变。

有之后我们我们我们 仅在此处打印HTTP标头,有之后假如有一天收到所有响应标头,就会关闭与服务器的连接。有之后,下行数率 和时间无需浪费下载您不关心的主体。始终下载响应标头,即使它们也有输出的一每段

能也能了--no-OPTION通过命令行传递的参数(类似,--no-style--no-session)为特定调用注销设置配置文件中的默认选项,或以任何某些土办法指定。

要注销设置先前指定的标头(类似默认标头之一),请使用Header:

通过小块流输出tail -f

HTTP土办法的名称就在URL参数也能了 :