Apifox?Echo学习curl?httpie?命令使用详解

 更新时间:2022年09月17日 12:03:03   作者:程序员山月  
这篇文章主要为大家介绍了通过Apifox?Echo学习curl?httpie?命令使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

正文 

curl,用于发送请求的命令行工具,一个 HTTP 请求客户端(实际上它也可以做 FTP/SCP/TELNET 协议的事情,可类比于浏览器中的 fetch。

curl 是最为流行的 HTTP 请求命令行工具,在谷歌浏览器控制台的网络面板中,可将当前请求转化为 curl

在学习及调试 HTTP 的过程中,可结合 curlApifo Echo 一同使用。

Apifox EchoApifox 出品的一款 HTTP 简单的接口请求和返回数据服务,可以模拟各种接口请求参数和返回数据的情况,供开发人员和测试人员学习测试 API 使用。

curl

直接发送 GET 请求:

$ curl ifconfig.me
118.73.227.215

curl --request

--request/-X,指定请求方法,如 POST 等。

$ curl \
  -X POST \
  -H "Accept: application/vnd.github+json" \ 
  -H "Authorization: token <TOKEN>" \
  https://api.github.com/repos/OWNER/REPO/issues \
  -d '{"title":"Found a bug","body":"I'\''m having a problem with this.","assignees":["octocat"],"milestone":1,"labels":["bug"]}'
$ curl https://echo.apifox.com/post -X POST -H "a: 3" -H "b: 4"
{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {}, 
  "headers": {
    "A": "3", 
    "Accept": "*/*", 
    "B": "4", 
    "Connection": "close", 
    "Host": "echo.apifox.com", 
    "User-Agent": "curl/7.79.1"
  }, 
  "json": null, 
  "origin": "118.113.0.137", 
  "url": "https://echo.apifox.com/post"
}

curl --head

--head/-I 发送 HEAD 请求,只需要返回 Response Header。

$ curl --head https://shanyue.tech
HTTP/2 200
server: Tengine
content-type: text/html; charset=utf-8
content-length: 33229
vary: Accept-Encoding
date: Tue, 21 Jun 2022 05:54:24 GMT
vary: Accept-Encoding
x-oss-request-id: 62B15D1050ED1C32320FE906
x-oss-cdn-auth: success
accept-ranges: bytes
etag: "F540C0D57CDB57215AF11970EF4AAEF6"
last-modified: Wed, 23 Mar 2022 14:57:44 GMT
x-oss-object-type: Normal
x-oss-hash-crc64ecma: 8545542358272103335
x-oss-storage-class: Standard
x-oss-meta-mtime: 1648047444.796073379
cache-control: no-cache
content-md5: 9UDA1XzbVyFa8Rlw70qu9g==
x-oss-server-time: 27
ali-swift-global-savetime: 1655790864
via: cache12.l2cn3051[290,290,200-0,M], cache4.l2cn3051[291,0], kunlun6.cn3145[383,382,200-0,M], kunlun3.cn3145[386,0]
x-cache: MISS TCP_MISS dirn:-2:-2
x-swift-savetime: Tue, 21 Jun 2022 05:54:24 GMT
x-swift-cachetime: 0
timing-allow-origin: *
eagleid: 791d26a916557908641262834e

curl --include

--include/-i,打印 Response Header 与 Response Body。

HTTP/1.1 200 OK
access-control-allow-origin: *
content-type: text/plain; charset=utf-8
content-length: 15
date: Wed, 17 Aug 2022 01:56:20 GMT
x-envoy-upstream-service-time: 1
strict-transport-security: max-age=2592000; includeSubDomains
server: istio-envoy
Via: 1.1 google
222.222.222.113%

curl --verbose

--verbose/-v,查看发送报文及 TLS handshake 的详细。

$ curl -vvv --head https://shanyue.tech
* Rebuilt URL to: https://shanyue.tech/
*   Trying 218.91.183.88...
* TCP_NODELAY set
* Connected to shanyue.tech (218.91.183.88) port 443 (#0)
* ALPN, offering h3
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, [no content] (0):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h3
* Server certificate:
*  subject: CN=shanyue.tech
*  start date: Feb  5 00:00:00 2022 GMT
*  expire date: Feb  6 23:59:59 2023 GMT
*  subjectAltName: host "shanyue.tech" matched cert's "shanyue.tech"
*  issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=Encryption Everywhere DV TLS CA - G1
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* TLSv1.3 (OUT), TLS app data, [no content] (0):
* TLSv1.3 (OUT), TLS app data, [no content] (0):
* TLSv1.3 (OUT), TLS app data, [no content] (0):
* Using Stream ID: 1 (easy handle 0x55c5a8e24690)
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> HEAD / HTTP/2
> Host: shanyue.tech
> User-Agent: curl/7.61.1
> Accept: */*
>
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS app data, [no content] (0):
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
* TLSv1.3 (OUT), TLS app data, [no content] (0):
* TLSv1.3 (IN), TLS app data, [no content] (0):
< HTTP/2 200
HTTP/2 200
< server: Tengine
server: Tengine
< content-type: text/html; charset=utf-8
content-type: text/html; charset=utf-8
< content-length: 33229
content-length: 33229
< vary: Accept-Encoding
vary: Accept-Encoding
< date: Tue, 21 Jun 2022 06:02:59 GMT
date: Tue, 21 Jun 2022 06:02:59 GMT
< vary: Accept-Encoding
vary: Accept-Encoding
< x-oss-request-id: 62B15F13F15BB231391FB3A8
x-oss-request-id: 62B15F13F15BB231391FB3A8
< x-oss-cdn-auth: success
x-oss-cdn-auth: success
< accept-ranges: bytes
accept-ranges: bytes
< etag: "F540C0D57CDB57215AF11970EF4AAEF6"
etag: "F540C0D57CDB57215AF11970EF4AAEF6"
< last-modified: Wed, 23 Mar 2022 14:57:44 GMT
last-modified: Wed, 23 Mar 2022 14:57:44 GMT
< x-oss-object-type: Normal
x-oss-object-type: Normal
< x-oss-hash-crc64ecma: 8545542358272103335
x-oss-hash-crc64ecma: 8545542358272103335
< x-oss-storage-class: Standard
x-oss-storage-class: Standard
< x-oss-meta-mtime: 1648047444.796073379
x-oss-meta-mtime: 1648047444.796073379
< cache-control: no-cache
cache-control: no-cache
< content-md5: 9UDA1XzbVyFa8Rlw70qu9g==
content-md5: 9UDA1XzbVyFa8Rlw70qu9g==
< x-oss-server-time: 3
x-oss-server-time: 3
< ali-swift-global-savetime: 1655791379
ali-swift-global-savetime: 1655791379
< via: cache24.l2et15-1[66,66,200-0,M], cache44.l2et15-1[67,0], cache27.cn4056[128,128,200-0,M], cache64.cn4056[130,0]
via: cache24.l2et15-1[66,66,200-0,M], cache44.l2et15-1[67,0], cache27.cn4056[128,128,200-0,M], cache64.cn4056[130,0]
< x-cache: MISS TCP_MISS dirn:-2:-2
x-cache: MISS TCP_MISS dirn:-2:-2
< x-swift-savetime: Tue, 21 Jun 2022 06:02:59 GMT
x-swift-savetime: Tue, 21 Jun 2022 06:02:59 GMT
< x-swift-cachetime: 0
x-swift-cachetime: 0
< timing-allow-origin: *
timing-allow-origin: *
< eagleid: 088432cc16557913793393217e
eagleid: 088432cc16557913793393217e
<
* Connection #0 to host shanyue.tech left intact

curl --location

--location/-L,追踪重定向。

# 重定向两次后请求到数据
$ curl --location http://zhihu.com
# 可使用 --head,查看到三次响应
$ curl --head --location http://zhihu.com

httpie && examples

httpie 是现代化更为流行的一个 HTTP 客户端,支持色彩、JSON 等。

# 发送 JSON 数据给服务器端,httpie 比 curl 方便很多,不需要自己手写 header,curl 默认为 application/x-www-form-urlencoded
$ http POST https://echo.apifox.com/post "a: 3" name=shanyue
$ curl -X POST https://echo.apifox.com/post -H "a: 3" -H "content-type: application/json" -d '{"name": "shanyue"}'
# 发送 Form 数据给服务器端,curl/httpie 都比较方便
$ http POST https://echo.apifox.com/post "a: 3" name=shanyue
$ curl -X POST https://echo.apifox.com/post -H "a: 3" -d name=shanyue
# 上传文件
$ http POST https://echo.apifox.com/post &lt; Readme.md
$ curl -X POST https://echo.apifox.com/post -H "content-type: application/json" -d @Readme.md
# multipart 上传文件
$ http --multipart https://echo.apifox.com/post a=3 b@'Readme.md'

Apifox Echo 中,还可以将请求直接转化为命令行。

结束

  • curl/httpie 如何发送一个 GET 请求
  • curl/httpie 如何发送 JSON 数据给服务器端
  • curl/httpie 如何发送 FORM 数据给服务器端
  • curl/httpie 如何追踪重定向路径
  • curl/httpie 如何仅返回 Response Header

以上就是Apifox Echo学习curl httpie 命令使用详解的详细内容,更多关于Apifox Echo命令curl httpie 的资料请关注程序员之家其它相关文章!

相关文章

  • git克隆远程仓库的指定分支方法(附常用git配置命令)

    git克隆远程仓库的指定分支方法(附常用git配置命令)

    这篇文章主要介绍了git克隆远程仓库的指定分支方法(附常用git配置命令),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • vscode如何设置默认打开的浏览器为Chrome

    vscode如何设置默认打开的浏览器为Chrome

    这篇文章主要介绍了vscode如何设置默认打开的浏览器为Chrome,需要的朋友可以参考下
    2020-08-08
  • git ssh 配置多个账户的方法

    git ssh 配置多个账户的方法

    这篇文章主要介绍了git ssh 配置多个账户的方法,需要的朋友可以参考下
    2017-10-10
  • git rebase -i 修改历史提交的方法

    git rebase -i 修改历史提交的方法

    这篇文章主要介绍了git rebase -i 修改历史提交的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 油猴脚本编写教程详解

    油猴脚本编写教程详解

    油猴脚本(Tampermonkey)是一个非常流行的浏览器扩展,它可以运行由广大社区编写的扩展脚本,来实现各式各样的功能,常见的去广告、修改样式文件、甚至是下载视频,今天给大家介绍油猴脚本编写教程,感兴趣的朋友一起看看吧
    2020-02-02
  • github 生成token的方法图解

    github 生成token的方法图解

    这篇文章主要介绍了github 生成token的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-09-09
  • 在Visual Studio中使用GIT进行源码管理

    在Visual Studio中使用GIT进行源码管理

    这篇文章介绍了在Visual Studio中使用GIT进行源码管理的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 2019最新的Pycharm激活码(推荐)

    2019最新的Pycharm激活码(推荐)

    PyCharm 是一款功能强大的 Python 编辑器,具有跨平台性。这篇文章给大家介绍2019最新的Pycharm激活码,需要的朋友一起看看吧
    2019-10-10
  • 深入讲解下Rust模块使用方式

    深入讲解下Rust模块使用方式

    很多时候,我们写的代码需要按模块组织,因为我们无法将大量的代码都写在一个文件上,那样不容易维护,下面这篇文章主要给大家介绍了关于Rust模块使用方式的相关资料,需要的朋友可以参考下
    2022-03-03
  • 解决Unable to access ''https://gitee.com/自己的项目/'': Could not resolve host: gitee.com问题

    解决Unable to access ''https://gitee.com/自己的项目/'': Could not r

    这篇文章主要介绍了解决Unable to access 'https://gitee.com/自己的项目/': Could not resolve host: gitee.com问题,需要的朋友可以参考下
    2020-09-09

最新评论


http://www.vxiaotou.com