欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


优酷客户端如何设置/取消自动连播?
Win8.1蓝牙怎么开?
优酷客户端如何进行播放设置?
Win8蓝牙鼠标掉线怎么办
Win8.1如何从微软账户切换为本地账户
优酷客户端如何将喜爱的剧集添加至桌面?
优酷客户端如何查看精选和热门频道内容?
优酷客户端如何添加网站快捷方式?
Win8双系统下硬盘拒绝访问怎么办
如何安装优酷客户端?
在Linux下HTTPie工具的使用教程
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   如果你经常需要通过终端以非交互模式访问网络服务器(例如,从网络上下载文件,或者是测试 RESTful 网络服务接口),可能你会选择的工具是 wget 或 curl。通过大量的命令行选项,这两种工具都可以处理很多非交互网络访问的情况(比如这里、这里,还有这里)。然而,即使像这些一样的强大的工具,你也只能发挥你所了解的那些选项的功能。除非你很精通那些繁冗的语法细节,这些工具对于你来说只不过是简单的网络下载器而已。

  就像其宣传的那样,“给人用 curl 类工具”,HTTPie 设计用来增强 wget 和 curl 的可用性。它的主要目标是使通过命令行与网络服务器进行交互的过程变得尽可能的人性化。为此,HTTPie 支持具有表现力、但又很简单很直观的语法。它以彩色模式显示响应,并且还有一些不错的优点,比如对 JSON 的良好支持,和持久性会话用以作业流程化。

  我知道很多人对把像 wget 和 curl 这样的无处不在的、可用的、完美的工具换成完全没听说过的软件心存疑虑。这种观点是好的,特别是如果你是一个系统管理员、要处理很多不同的硬件的话。然而,对于开发者和终端用户来说,重要的是效率。如果我发现了一个工具的用户更佳替代品,那么我认为采用易于使用的版本来节省宝贵的时间是毫无疑问的。没有必要对替换掉的工具保持信仰忠诚。毕竟,对于 Linux 来说,最好的事情就是可以选择。

  在这篇文章中,让我们来了解并展示一下我所说的 HTTPie,一个用户友好的 wget 和 curl 的替代。

  在 Linux 上安装 HTTPie

  HTTPie 是用 Python 写的,所以你可以在几乎所有地方(Linux,MacOSX,Windows)安装它。而且,在大多数的 Linux 发行版中都有编译好的安装包。

  Debian,Ubuntu 或者 Linux Mint:

  代码如下:

  $ sudo apt-get install httpie

  Fedora:

  代码如下:

  $ sudo yum install httpie

  CentOS/RHEL:

  首先,启用EPEL 仓库,然后运行:

  代码如下:

  $ sudo yum install httpie

  对于任何 Linux 发行版,另一个安装方法时使用pip。

  代码如下:

  $ sudo pip install --upgrade httpie

  HTTPie 的例子

  当你安装完 HTTPie 后,你可以通过输入 http 命令来调用它。在这篇文章的剩余部分,我会展示几个有用的 http 命令的例子。

  例1:定制头部

  你可以使用 的格式来定制头部。例如,我们发送一个 HTTP GET 请求到 www.test.com ,使用定制用户代理(user-agent)和来源(referer),还有定制头部(比如 MyParam)。

  代码如下:

  $ http www.test.com User-Agent:Xmodulo/1.0 Referer:http://xmodulo.com MyParam:Foo

  注意到当使用 HTTP GET 方法时,就无需明确指定 HTTP 方法。

  这个 HTTP 请求看起来如下:

  代码如下:

  GET / HTTP/1.1

  Host: www.jb51.net

Accept: */*

  Referer: http://xmodulo.com

  Accept-Encoding: gzip, deflate, compress

  MyParam: Foo

  User-Agent: Xmodulo/1.0

  例2:下载文件

  你可以把 http 作为文件下载器来使用。你需要像下面一样把输出重定向到文件。

  代码如下:

  $ http www.jb51.net/my_file.zip > my_file.zip

  或者:

  代码如下:

  $ http --download www.jb51.net/my_file.zip

  例3:定制 HTTP 方法

  除了默认的 GET 方法,你还可以使用其他方法(比如 PUT,POST,HEAD)。例如,发送一个 HTTP PUT 请求:

  代码如下:

  $ http PUT www.jb51.net name='Dan Nanni' email=dan@email.com

  例4:提交表单

  使用 http 命令提交表单很容易,如下:

  代码如下:

  $ http -f POST www.jb51.net name='Dan Nanni' comment='Hi there'

  '-f' 选项使 http 命令序列化数据字段,并将 'Content-Type' 设置为 "application/x-www-form-urlencoded; charset=utf-8"。

  这个 HTTP POST 请求看起来如下:

  代码如下:

  POST / HTTP/1.1

  Host: www.jb51.net

Content-Length: 31

  Content-Type: application/x-www-form-urlencoded; charset=utf-8

  Accept-Encoding: gzip, deflate, compress

  Accept: */*

  User-Agent: HTTPie/0.8.0

  name=Dan+Nanni&comment=Hi+there

  例5:JSON 支持

  HTTPie 内置 JSON(一种日渐普及的数据交换格式)支持。事实上,HTTPie 默认使用的内容类型(content-type)就是 JSON。因此,当你不指定内容类型发送数据字段时,它们会自动序列化为 JSON 对象。

  代码如下:

  $ http POST www.test.com name='Dan Nanni' comment='Hi there'

  这个 HTTP POST 请求看起来如下:

  代码如下:

  POST / HTTP/1.1

  Host: www.jb51.net

Content-Length: 44

  Content-Type: application/json; charset=utf-8

  Accept-Encoding: gzip, deflate, compress

  Accept: application/json

  User-Agent: HTTPie/0.8.0

  {"name": "Dan Nanni", "comment": "Hi there"}

  例6:输出重定向

  HTTPie 的另外一个用户友好特性是输入重定向,你可以使用缓冲数据提供 HTTP 请求内容。例如:

  代码如下:

  $ http POST api.jb51.net/db/lookup < my_info.json

  或者:

  代码如下:

  $ echo '{"name": "Dan Nanni"}' | http POST api.test.com/db/lookup

  结束语

  在这篇文章中,我介绍了 HTTPie,一个 wget 和 curl 的可能替代工具。除了这里展示的几个简单的例子,你可以在其官方网站上找到 HTTPie 的很多有趣的应用。再次重复一遍,一款再强大的工具也取决于你对它的了解程度。从个人而言,我更倾向于 HTTPie,因为我在寻找一种更简洁的测试复杂网络接口的方法。

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站