引言
cURL是一種命令行實用程序,用于使用一種受支持的協(xié)議,從遠程服務(wù)器傳輸數(shù)據(jù),或?qū)?shù)據(jù)傳輸?shù)竭h程服務(wù)器。默認(rèn)情況下,已安裝在macOS和大多數(shù)linux發(fā)行版上。
開發(fā)人員可以使用cURL來測試API接口,查看響應(yīng)頭和發(fā)出HTTP請求。
在本文中,我們將解釋如何使用cURL發(fā)出POST請求。HTTP POST方法用于將數(shù)據(jù)發(fā)送到遠程服務(wù)器
發(fā)出POST請求
curl 發(fā)出POST請求的命令的一般形式如下:
curl -X POST [options] [URL]
該-X選項指定與遠程服務(wù)器通信時將使用哪種HTTP請求方法。
請求主體的類型由其Content-Type標(biāo)頭指定。通常,POST請求是通過html表單發(fā)送的。發(fā)送到表單的數(shù)據(jù)通常以multipart/form-data或Application/x-www-form-urlencoded內(nèi)容類型進行編碼。
要創(chuàng)建POST請求,請使用-F選項,然后使用key=value配對。下面的示例說明如何向具有“name”和“email”字段的表單發(fā)出POST請求:
curl -X POST -F 'name=Jason' -F 'email=jason@example.com' https://example.com/contact.php
使用該-F選項時,curl使用 Content-Type 為“multipart/form-data”發(fā)送數(shù)據(jù)。
發(fā)出POST請求的另一種方法是使用-d選項。這導(dǎo)致curl使用application/x-www-form-urlencodedContent-Type發(fā)送數(shù)據(jù)。
curl -X POST -d 'name=Jason' -d 'email=jason@example.com' https://example.com/contact.php
如果-d多次使用該選項,則可以使用&符號合并數(shù)據(jù):
curl -X POST -d 'name=Jason&email=jason@example.com' https://example.com/contact.php
指定Content-Type
要設(shè)置特定的標(biāo)題或Content-Type,請使用-H選項。以下命令將POST請求類型設(shè)置為,application/json并發(fā)送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使用方法,可輕松應(yīng)對表單提交,文件上傳等等情形,非常實用,也是線上診斷的利器。
Happy coding :-)