3分鐘短文|Linux 使用curl發起post請求的4個常用方式

2020-12-13 程式設計師小助手

引言

cURL是一種命令行實用程序,用於使用一種受支持的協議,從遠程伺服器傳輸數據,或將數據傳輸到遠程伺服器。默認情況下,已安裝在macOS和大多數Linux發行版上。

開發人員可以使用cURL來測試API接口,查看響應頭和發出HTTP請求。

在本文中,我們將解釋如何使用cURL發出POST請求。HTTP POST方法用於將數據發送到遠程伺服器

發出POST請求

curl 發出POST請求的命令的一般形式如下:

curl -X POST [options] [URL]

該-X選項指定與遠程伺服器通信時將使用哪種HTTP請求方法。

請求主體的類型由其Content-Type標頭指定。通常,POST請求是通過HTML表單發送的。發送到表單的數據通常以multipart/form-data或application/x-www-form-urlencoded內容類型進行編碼。

要創建POST請求,請使用-F選項,然後使用key=value配對。下面的示例說明如何向具有「name」和「email」欄位的表單發出POST請求:

curl -X POST -F 'name=Jason' -F 'email=jason@example.com' https://example.com/contact.php

使用該-F選項時,curl使用 Content-Type 為「multipart/form-data」發送數據。

發出POST請求的另一種方法是使用-d選項。這導致curl使用application/x-www-form-urlencodedContent-Type發送數據。

curl -X POST -d 'name=Jason' -d 'email=jason@example.com' https://example.com/contact.php

如果-d多次使用該選項,則可以使用&符號合併數據:

curl -X POST -d 'name=Jason&email=jason@example.com' https://example.com/contact.php

指定Content-Type

要設置特定的標題或Content-Type,請使用-H選項。以下命令將POST請求類型設置為,application/json並發送JSON對象:

curl -X POST -H "Content-Type: application/json" -d '{"name": "Jason", "email": "jason@example.com"}' https://example/contact

文件上傳

要使用curl來上傳文件,只需在文件位置之前添加 at 符號。該文件可以是任何支持的類型。

curl -X POST -F 'image=@/home/user/Pictures/wallpaper.jpg' http://example.com/upload

寫在最後

本文通過實例展示了Linux下的curl工具的POST使用方法,可輕鬆應對表單提交,文件上傳等等情形,非常實用,也是線上診斷的利器。

Happy coding :-)

我是 @程式設計師小助手 ,持續分享編程知識,歡迎關注。

相關焦點

  • 在PHP中使用CURL實現GET和POST請求的方法
    本文將介紹curl的一些高級特性,以及在PHP中如何運用它。2.基本結構在學習更為複雜的功能之前,先來看一下在PHP中建立CURL請求的基本步驟:(1)初始化 curl_init()(2)設置變量 curl_setopt() //最為重要,一切玄妙均在此。有一長串curl參數可供設置,它們能指定URL請求的各個細節。
  • [基礎] PHP與Curl採用的GET,POST,JSON方式請求API
    記錄curl用不同方式:GET,POST,JSON等請求一個Api,網上很多例子,我這裡也寫個筆記,記錄一下自己利用不同方式請求api的curl方法。array $post 需要以post的方式發送的數據 * @param   bool $is_async 是否是異步方式請求;暫未實現 * @param   int $retry 重試次數;默認0 * @param   bool $verify_ssl 是否驗證 ssl 證書;默認禁用 * @return  mixed|string */function
  • Linux常用命令 - curl
    頭文件通過請求或響應在客戶端和伺服器之間傳遞。在下面的例子中 curl 將下載 Go 二進位文件,並將下載速度限制在1 mb:curl --limit-rate 1m-O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz此選項有助於防止 curl
  • curl使用指南
    * Connected to www.baidu.com (14.215.177.39) port 80 (#0)> GET / HTTP/1.1> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2> Host
  • Linux curl 常用示例
    DOCTYPE html>1.3. 靜默模式與錯誤信息列印當我們做一些操作時,可能會出現進度表。這時我們可以使用-s, --silent 靜默模式去掉這些不必要的信息。如果使用-s, --silent 時,還需要列印錯誤信息,那麼還需要使用-S, --show-error 選項。
  • 21 個 curl 命令練習 | Linux 中國
    這個想法是,你找到一個可以用三節 45 分鐘課程內能夠學會的小技能,並專注於學習這項小技能。因此,作為一項練習,我嘗試考慮一項能夠在三節 45 分鐘課程內學會的計算機技能。我認為使用 curl 構造 HTTP 請求也許就是這樣的一項技能,所以這裡有一些 curl 練習作為實驗!什麼是 curl ?curl 是用於構造 HTTP 請求的命令行工具。
  • cUrl命令行工具下載使用心得及常用參數解釋
    3. 打開命令窗口並定位到curl命令所在的目錄,你可以使用cd命令也可以像下圖這樣快速進入:比如:cd f:\curl\bin4.-u ftpuser:ftppass -O ftp://ftp_server/public_html/3 4 # 下載xss.php文件5 curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php
  • curl常用方法
    請求協議POST、GET、DELETE、PUT、PUSH、OPTIONS、HEAD以下列舉幾種工作中比較常用的curl命令方法:1、application/x-www-form-urlencoded最常見的一種
  • 接口測試實戰| GET/POST 請求區別詳解
    在日常的工作當中,HTTP 請求中使用最多的就是 GET 和 POST 這兩種請求方式。
  • Linux下curl命令的使用
    前言在Linux下,curl是一個綜合傳輸工具,既可以用來上傳文件,也可以用來下載文件,在日常使用過程中,它通常都是以下載工具的角色出現,常用來檢驗一個網址是否可以訪問。與curl命令相似的,還有wget命令,二者在功能上具有很多類似的地方,但curl由於可自定義各種請求參數所以在模擬web請求方面更擅長;wget由於支持ftp和Recursive所以在下載文件方面更擅長。
  • PHP:6種GET和POST請求發送方法
    short_name=i94web&threads=$postid"); // 設置true返回數組,不設置或者是false則返回對象$resjson= json_decode($jsondata,true); return $resjson['response'][$postid]['comments'];}對於遠程請求,有很多種方法。
  • jQuery的$.get()、$.post()和$.ajax()以GET/POST方式請求數據
    ,如get、post、put、deletet等,但是最常用的是獲取數據和提交數據,獲取數據是get請求,提交數據是post請求。注意:HTTP請求是指客戶端向伺服器發送的請求。例如使用自己的電腦打開瀏覽器,輸入「百度」的網址,此時就是從你的計算機向百度的伺服器發起HTTP請求。HTTP GET請求:一般情況下是指從指定的資源獲取數據,將遠程伺服器上的數據拿過來使用。
  • Linux curl 常用示例你都 Get 了嗎?|CSDN 博文精選
    作者 | LightZhang666責編 | 屠敏出品 | CSDN 博客本篇文章包含了curl的常用案例使用。DOCTYPE html>……………… # curl 網頁的具體信息指定訪問的請求方法當然curl默認使用GET方式訪問。使用了 -d, --data <data> 選項,那麼會默認為 POST方法訪問。
  • PHP 使用 CURL 詳解
    >上述代碼中使用到了四個函數curl_init() 和 curl_close() 分別是初始化CURL連接和關閉CURL連接,都比較簡單。curl_exec() 執行CURL請求,如果沒有錯誤發生,該函數的返回是對應URL返回的數據,以字符串表示滿意;如果發生錯誤,該函數返回 FALSE。
  • easyhttp v1.1發布,新增異步並發請求
    EasyHttp並不強制依賴於cURL,如果沒有安裝cURL,EasyHttp會自動選擇使用PHP流處理,或者你也可以提供自己的發送HTTP請求的處理方式。(Response $response, $index) { echo "發起第 $index 個異步請求,請求時長:" .
  • 這23個linux常用命令必須會!
    為什麼要學 linux 呢? 嗯,真香 !1. ls 命令 : 顯示目錄內容列表Linux ls 命令用於顯示指定工作目錄下之內容(列出目前工作目錄所含之文件及子目錄)。ls [-alrtAFR] [name...]常用 options
  • 使用curl技術實現數據採集
    前提:比如在php.ini中,開啟curl模塊:基本步驟:l 1、初始化CURL請求:$link = curl_init([網址url]);l 2、設置請求選項:curl_setopt($link, 選項名, 選項值)。
  • 前端應該會的23個linux常用命令
    常用 options2、rm 命令 : 刪除文件/目錄options:3、tail 命令 : 查看文件內容tail 命令可用於查看文件的內容,有一個常用的參數 -f 常用於查閱正在改變的日誌文件。tail -f filename 會把 filename 文件裡的最尾部的內容顯示在屏幕上,並且不斷刷新,只要 filename 更新就可以看到最新的文件內容。
  • Linux提權的幾種常用方式
    1.3 Linux提權輔助工具github項目地址:https://github.com/mzet-/linux-exploit-suggester.git (1)根據作業系統版本號自動查找相應提權腳本wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh
  • PHP使用Curl實現模擬登錄及抓取數據功能示例
    首先需要對相應的登錄頁面的html原始碼進行分析,獲得一些必要的信息:(1)登錄頁面的地址;(2)驗證碼的地址;(3)登錄表單需要提交的各個欄位的名稱和提交方式;(4)登錄表單提交的地址;(5)另外要需要知道要抓取的數據所在的地址。2.