亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HTTPie如何使用

發布時間:2022-02-18 16:30:14 來源:億速云 閱讀:172 作者:iii 欄目:開發技術

今天小編給大家分享一下HTTPie如何使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

HTTPie 是一個 HTTP 的命令行客戶端,目標是讓 CLI 和 web 服務之間的交互盡可能的人性化。這個工具提供了簡潔的 http 命令,允許通過自然的語法發送任意 HTTP 請求數據,展示色彩化的輸出。HTTPie 可用于與 HTTP 服務器做測試、調試和常規交互。

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/get
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: trueAccess-Control-Allow-Origin: *
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 177
Content-Type: application/json
Date: Fri, 09 Aug 2019 20:19:47 GMT
Referrer-Policy: no-referrer-when-downgrade
Server: nginx
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-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/awesome
HTTP/1.1 302 FOUND
Access-Control-Allow-Credentials: trueAccess-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 223
Content-Type: text/html; charset=utf-8
Date: Fri, 09 Aug 2019 20:22:39 GMT
Location: /cookies
Referrer-Policy: no-referrer-when-downgrade
Server: nginx
Set-Cookie: opensource=awesome; Path=/
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block



"-//W3C//DTD HTML 3.2 Final//EN">Redirecting...Redirecting...You should be redirected automatically to target URL:
"/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/awesome
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: trueAccess-Control-Allow-Origin: *
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 66
Content-Type: application/json
Date: Sat, 10 Aug 2019 01:33:34 GMT
Referrer-Policy: no-referrer-when-downgrade
Server: nginx
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block

{
   "cookies": {
       "opensource": "awesome"   }
}

但此時你無法看到原來的 Set-Cookie 頭。為了看到中間響應,你需要使用 –all:

$ http --headers --all --follow GET https://httpbin.org/cookies/set/opensource/awesome
HTTP/1.1 302 FOUND
Access-Control-Allow-Credentials: trueAccess-Control-Allow-Origin: *
Content-Type: text/html; charset=utf-8
Date: Sat, 10 Aug 2019 01:38:40 GMT
Location: /cookies
Referrer-Policy: no-referrer-when-downgrade
Server: nginx
Set-Cookie: opensource=awesome; Path=/
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
Content-Length: 223
Connection: keep-alive

HTTP/1.1 200 OK
Access-Control-Allow-Credentials: trueAccess-Control-Allow-Origin: *
Content-Encoding: gzip
Content-Type: application/json
Date: Sat, 10 Aug 2019 01:38:41 GMT
Referrer-Policy: no-referrer-when-downgrade
Server: nginx
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
Content-Length: 66
Connection: keep-alive

打印響應體并不有趣,因為你大多數時候只關心 cookie。如果你想看到中間請求的響應頭,而不是最終請求中的響應體,你可以使用:

$ http --print hb --history-print h --all --follow GET https://httpbin.org/cookies/set/opensource/awesome
HTTP/1.1 302 FOUND
Access-Control-Allow-Credentials: trueAccess-Control-Allow-Origin: *
Content-Type: text/html; charset=utf-8
Date: Sat, 10 Aug 2019 01:40:56 GMT
Location: /cookies
Referrer-Policy: no-referrer-when-downgrade
Server: nginx
Set-Cookie: opensource=awesome; Path=/
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
Content-Length: 223
Connection: keep-alive

HTTP/1.1 200 OK
Access-Control-Allow-Credentials: trueAccess-Control-Allow-Origin: *
Content-Encoding: gzip
Content-Type: application/json
Date: Sat, 10 Aug 2019 01:40:56 GMT
Referrer-Policy: no-referrer-when-downgrade
Server: nginx
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
Content-Length: 66
Connection: keep-alive

{
 "cookies": {
   "opensource": "awesome" }
}

你可以使用 –print 精確控制打印的內容(h:響應頭;b:響應體),并使用 –history-print 覆蓋中間請求的打印內容設置。

使用 HTTPie 下載二進制文件

有時響應體并不是文本形式,它需要發送到可被不同應用打開的文件:

$ http GET https://httpbin.org/image/jpeg
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: trueAccess-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 35588
Content-Type: image/jpeg
Date: Fri, 09 Aug 2019 20:25:49 GMT
Referrer-Policy: no-referrer-when-downgrade
Server: nginx
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block

+-----------------------------------------+
| NOTE: binary data not shown in terminal |
+-----------------------------------------+

要得到正確的圖片,你需要保存到文件:

$ http --download GET https://httpbin.org/image/jpegHTTP/1.1 200 OKAccess-Control-Allow-Credentials: trueAccess-Control-Allow-Origin: *Connection: keep-aliveContent-Length: 35588Content-Type: image/jpegDate: Fri, 09 Aug 2019 20:28:13 GMTReferrer-Policy: no-referrer-when-downgradeServer: nginxX-Content-Type-Options: nosniffX-Frame-Options: DENYX-XSS-Protection: 1; mode=blockDownloading 34.75 kB to "jpeg.jpe"Done. 34.75 kB in 0.00068s (50.05 MB/s)

試一下!圖片很可愛。

使用 HTTPie 發送自定義請求

你可以發送指定的請求頭。這對于需要非標準頭的自定義 Web API 很有用:

$ http GET https://httpbin.org/headers X-Open-Source-Com:Awesome{ "headers": {   "Accept": "*/*",   "Accept-Encoding": "gzip, deflate",   "Host": "httpbin.org",   "User-Agent": "HTTPie/1.0.2",   "X-Open-Source-Com": "Awesome" }}

最后,如果要發送 JSON 字段(盡管可以指定確切的內容),對于許多嵌套較少的輸入,你可以使用快捷方式:

$ http --body PUT https://httpbin.org/anything open-source=awesome author=moshez
{
 "args": {},
 "data": "{\"open-source\": \"awesome\", \"author\": \"moshez\"}",
 "files": {},
 "form": {},
 "headers": {
   "Accept": "application/json, */*",
   "Accept-Encoding": "gzip, deflate",
   "Content-Length": "46",
   "Content-Type": "application/json",
   "Host": "httpbin.org",
   "User-Agent": "HTTPie/1.0.2" },
 "json": {
   "author": "moshez",
   "open-source": "awesome" },
 "method": "PUT",
 "origin": "73.162.254.113, 73.162.254.113",
 "url": "https://httpbin.org/anything"}

下次在調試 Web API 時,無論是你自己的還是別人的,記得放下 cURL,試試 HTTPie 這個命令行工具。

以上就是“HTTPie如何使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桑日县| 甘洛县| 林周县| 北安市| 红原县| 上思县| 项城市| 门头沟区| 温泉县| 合江县| 宁津县| 西峡县| 甘孜| 永安市| 广汉市| 唐山市| 平原县| 芒康县| 蓝田县| 乌拉特前旗| 仙桃市| 奎屯市| 普定县| 海晏县| 潼关县| 盈江县| 永胜县| 曲水县| 邵阳市| 文成县| 苏尼特右旗| 依兰县| 东乡族自治县| 乐亭县| 天祝| 正镶白旗| SHOW| 灵寿县| 乡城县| 广昌县| 灵武市|