tft每日頭條

 > 科技

 > curl詳細請求信息

curl詳細請求信息

科技 更新时间:2024-07-20 19:14:57

curl是一個命令行下的web客戶端,可以在命令行下執行常見的web訪問、自動web請求等操作,之前的文章中蟲蟲曾經專門介紹過。本文我們來總結一下curl使用代理服務器的用法。

curl詳細請求信息(curl高級用法之設置代理服務器)1

概述

curl(cURL)是一個用于傳輸數據的命令行工具,其誕生于20多年前,最早版本是在1998年。

curl詳細請求信息(curl高級用法之設置代理服務器)2

curl支持以多種方式檢索和發送數據,并輸出到标準輸出,可以無縫銜接标準unix管道使用。在絕大多數的*nix操作系統上都默認安裝。curl支持各種協議,包括 HTTP/HTTPS、FTP和SCP。

curl詳細請求信息(curl高級用法之設置代理服務器)3

Web代理服務器充當客戶端和目标服務器之間的中介。客戶端首先訪問代理,然後代理執行它并将結果返回給客戶端。

curl詳細請求信息(curl高級用法之設置代理服務器)4

有些Web站點是有限制的,我們無法直接通過當前IP直接訪問目标站點;還有一些站點對訪問請求是有一定限制,而我們在請求數據時候為了請求速度也需要突破IP限制。通過使用代理服務,我們就可以突破上述限制。

curl代理設置

為演示需要,本文中示例中使用的代理将設置為本地機器上,使用端口5000。默認情況下,代理語句中唯一需要的部分是主機,默認端口80。我們将通過HTTP将數據傳輸到它,我們将明确指定完整性。為了方便,我們請求服務為httpbin。 Httpbin是一個開源的标準http服務顯示,在請求/ip接口時候可以查看請求IP地址。

方法一:命令行參數

使用代理的第一個也是最簡單的選項是使用命令行參數。Curl代理參數為-x(或者--proxy)。基本格式為:

-x, --proxy [protocol://]host[:port]

因此,要使用代理訪問,可以使用:

curl詳細請求信息(curl高級用法之設置代理服務器)5

其中,代理服務器的協議頭,默認為http可以省略掉:

curl -x 127.0.0.1:5000 httpbin/ip

身份驗證

此外,如果HTTP代理服務器也需要身份驗證,可以使用 -U标志來指定它。

curl -U user:password --proxy 127.0.0.1:5000 httpbin/ip

某些代理服務器可能需要不同的身份驗證方案。可以通過--proxy-anyauth指定curl以确定身份驗證方案

curl -U user:password --proxy 127.0.0.1:5000 httpbin/ip --proxy-anyauth

如果認證密碼中包含特殊字符,需要對其添加加上雙引号("")。

curl -U "user:p@assword" --proxy 127.0.0.1:5000 httpbin/ip

上面命令中直接用密碼容易被洩露并且會被記錄在history日志中,在命令行中通過隻提供用戶名,然後可以交互式的,根據curl提示輸入密碼。

curl -U user --proxy 127.0.0.1:5000 httpbin/ip > Enter proxy password for user 'user':

方法二:使用環境變量

可以使用環境變量配置實現curl使用代理服務器。curl允許通過設置變量為它支持的每個協議使用環境變量[scheme]_proxy。如果設置了這些,那麼當使用對應協議時,curl将默認引入。對http和https協議:

export http_proxy="127.0.0.1:5000" export https_proxy="127.0.0.1:5000"

同樣可以添加認證參數:

curl詳細請求信息(curl高級用法之設置代理服務器)6

然後所有,curl http和https請求就會自動使用代理。

與以這種方式設置的所有環境變量一樣,這些隻是臨時變量,shell會話結束或重新啟動系統時删除。但是,為了使其在所有會話中可用,可以将其附加到profile文件中,或者對于個人可以在.bashrc 或 .zshrc文件添加,實現持久化的代理設置。

方法三:使用别名

配置代理的另一種更持久的方法是shell别名,如果總是需要以這種方式定期連接,這很有用。通過别名可以cur将調用替換為使用代理的版本,這其實和上面的方法二同理。

alias curl="curl -x 127.0.0.1:5000"

方法四:使用.curlrc 配置

其實curl也支持個性化的配置參數配置,配置文件默認情況下在個人目錄 ~/.curlrc(Windows上為 _curlrc),也可以指定其他文件路徑。

在.curlrc配置文件中添加代理支持的方法為:

proxy = "http://127.0.0.1:5000"

實例:使用curl 提取網頁的标題

最後舉個更複雜的,我們使用unix管道将結合grep正則提取站點标題。

curl curl –silent baidu |grep -Eo '<title>(.*)</title>'

--silent參數可以去掉curl輸出進度信息,對響應的内容用grep正則表達式中捕獲标題。

curl詳細請求信息(curl高級用法之設置代理服務器)7

結論

在本文中,我們介紹curl中使用代理服務器的各種方法,大家可以根據實際需要選擇最合适方法。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved