登入使用curl指令模拟http请求

curl_init  时间:2021-04-19  阅读:()

使用curl指令模拟HTTP请求c url是很方便的Rest客戶端可以很方便的完成許多Rest API測試的需求甚至如果是需要先登入或認證的rest api也可以進行測試利用curl指令可以送出HTTP GET,POST,PUT,DELETE,也可以改變HTTP header來滿足使用REST API需要的特定條件。curl的参数很多這邊僅列出目前測試REST時常用到的:

-X/--reques t[GET|P O ST|PUT|DELET E|…]使用指定的httpmethod發出httpreques t-H/--header設定request裡的header

-i/--inc lude顯示response的header

-d/--data設定httpp arameters

-v/--verb os e輸出比較多的訊息

-u/--us er使用者帳號、密碼

-b/--cookiecookielinux command line的參數常 同一個功能常會有兩個功能完全相同參數一個是比較短的參數前面通常是用-(一個-)導引符號另一個比較長的參數通常會用--(兩個-)導引符號在curl使用說明

-X,--requestCOMMANDSpecifyrequestc ommandtouse

--resolveHOST:PORT:ADDRESSForceresolveofHOST:PORTtoADDRESS

--retryNUMRetryreque s tNUMtime s iftrans ientprob l em s o cc ur

--retry-delaySECONDSWhenretrying,w aitth ismanys ec ondsbetw eeneach

--retry-max-time S ECOND S Retryon lyw ith inthis p er iod

參數-X跟--request兩個功能是一樣的所以使用時ex:curl-X POST http://www.example.c om/跟curl--request POST http://www.example.c om/是相等的功能

GET/P O S T/PUT/DELETE使用方式

-X後面加http methodc url-XGET”http://www.res t.c om/api/us ers”curl-XPOS T”http://www.rest.c om/api/us ers”c url-XPUT”http://w ww.res t.c om/api/us ers”c url-XDELET E”http://w ww.r es t.c om/ap i/us ers”ur l要加引號也可以不加引號也可以如果有非純英文字或數字外的字元不加引號可能會有問題如果是網碼過的ur l也要加上引號

HEADER

在http header加入的訊息curl-v-i-H”Content-Type:app lic ation/js on”http://www.example.c om/us ers

HTTP Parameterhttp參數可以直接加在url的query s tring也可以用-d帶入參數間用串接或使用多個-d

#使用` `串接多個參數curl-XPOST-d”param1=value1 param2=value2”

#也可使用多個`-d` 效果同上curl-XPOST-d”param 1=value 1”-d”param2=value2”curl-XPOST-d”param 1=a0spac e”

#“a space”url encode後空白字元會編碼成’%20’為”a%20space”編碼後的參數可以直接使用curl-XPOST-d”param1=a%20space”postjson格式得資料

如同時需要傳送request parameter跟json request parameter可以加在url後面 json資料則放入-d的參數然後利用單引號將json資料含起來(如果json內容是用單引號 -d的參數則改用雙引號包覆) header要加入”Content-Type:app lic ation/js on”跟”Ac c ept:applic ation/js on”

ept:app lication/json”-d’{“boolean”:false,”foo”:”bar”}’

#不加”Accept:application/json”也可以c urlhttp://www.example.c om?modifier=kent-XPUT-i-H”Cont ent-Type:app lic ation/js on”-d’{“boolean”:false,”foo”:”bar”}’

需先認證或登入才能使用的s ervic e

許多服務需先進行登入或認證後才能存取其API服務依服務要求的條件 的curl可以透過cookie session或加入在header加入session key api key或認證的token來達到認證的效果。session例子:

後端如果是用session記錄使用者登入資訊後端會傳一個session id給前端前端需要在每次跟後端的requests的header中置入此session id後端便會以此session id識別前端是屬於那個session 以達到session的效果curl--requestGET’http://www.rest.c om/api/us ers’--header’s es s ionid:1234567890987654321’c ookie例子

如果是使用c ookie在認證後後端會回一個c ookie回來把該c ookie成檔案當要存取需要任務的url時再用-b cookie_file的方式在request中植入cookie即可正常使用

#將c ookie存檔c url-i-XP O S T-dus ername=kent-dpassw ord=kent 123-c~/c ookie.txthttp://w ww.res t.c om/auth

#載入cookie到request中c url-i--header”Ac c ept:app lic ation/js on”-XGET-b~/c ookie.txthttp://www.rest.c om/us ers/1

檔案上傳c url-i-XP O S T-F’file=@/Us ers/kent/my_file.txt’-F’name=a_file_name’

這個是透過HTTP multipart POST上傳資料 -F是使用http query parameter的方式指定檔案位置的參數要加上@

HTTP Bas ic Authentication(HTTP基本認證)

如果網站是採HTTP基本認證,可以使用--user username:password登入c url-i--us erkent:s ecrethttp://www.res t.c om/ap i/fo o’

認證失敗時會是401 Unauthorized

HTTP/1.1401 Unauthorized

Server:Ap ache-Coyote/1.1

X-Content-Type-Options:nosniff

X-XSS-Protection:1;mode=block

Cache-Control:no-c ache,no-store,max-age=0,must-revalidate

Pragma:no-c ache

Exp ir e s:0

X-Frame-Options:DENY

WWW-Authentic ate:Bas ic realm=“Realm”

Content-Typ e:text/html;c hars et=utf-8

Content-Languag e:en

Content-Length:1022

Date:Thu,15 May201406:32:49 GMT

認證通過時會回應200OK

HTTP/1.1200OK

Server:Ap ache-Coyote/1.1

X-Content-Type-Options:nosniff

X-XSS-Protection:1;mode=block

Cache-Control:no-c ache,no-store,max-age=0,must-revalidate

Pragma:no-c ache

Exp ir e s:0

X-Frame-Options:DENY

Set-Cookie:JSES SIONID=A75066DCC816CE31 D8F69255DEB6C30B;Path=/mdserver/;HttpOnly

Content-Type:app lic ation/js on;chars et=UTF-8

Trans fer-Enc oding:c hunked

Date:Thu,15May201406:14:11 G MT

可以把認證後的c ookie存起來重複使用c url-i--us erkent:s ecrethttp://www.res t.c om/api/foo’-c~/c ookies.txt登入之前暫存的cookies可以不用每次都認證c url-ihttp://w ww.res t.c om/api/foo’-b~/c ookies.txt

Hostodo:$34.99/年KVM-2.5GB/25G NVMe/8TB/3个数据中心

Hostodo在九月份又发布了两款特别套餐,开设在美国拉斯维加斯、迈阿密和斯波坎机房,基于KVM架构,采用NVMe SSD高性能磁盘,最低1.5GB内存8TB月流量套餐年付34.99美元起。Hostodo是一家成立于2014年的国外VPS主机商,主打低价VPS套餐且年付为主,基于OpenVZ和KVM架构,美国三个地区机房,支持支付宝或者PayPal、加密货币等付款。下面列出这两款主机配置信息。CP...

ZJI:520元/月香港服务器-2*E5-2630L/32GB/480G SSD/30M带宽/2IP

ZJI发布了一款7月份特别促销独立服务器:香港邦联四型,提供65折优惠码,限量30台(每用户限购1台),优惠后每月520元起。ZJI是原来Wordpress圈知名主机商家:维翔主机,成立于2011年,2018年9月启用新域名ZJI,提供中国香港、台湾、日本、美国独立服务器(自营/数据中心直营)租用及VDS、虚拟主机空间、域名注册等业务。下面列出这款服务器的配置信息。香港邦联四型CPU:2*E5-2...

HostWebis:美国/法国便宜服务器,100Mbps不限流量,高配置大硬盘,$44/月起

hostwebis怎么样?hostwebis昨天在webhosting发布了几款美国高配置大硬盘机器,但报价需要联系客服。看了下该商家的其它产品,发现几款美国服务器、法国服务器还比较实惠,100Mbps不限流量,高配置大硬盘,$44/月起,有兴趣的可以关注一下。HostWebis是一家国外主机品牌,官网宣称1998年就成立了,根据目标市场的不同,以不同品牌名称提供网络托管服务。2003年,通过与W...

curl_init为你推荐
FUSIONENTERTAINMENT.COMj^=iáíá=fq~=OQJOU==aJPPNMO=m~dê~ó=游戏iosCouriercsspresent37支持ipadeacceleratoreaccelerator.shm_size设置多少合适呢?photoshop技术什么是ps技术联通版iphone4s怎样看苹果4S是联通版还是电信版重庆电信宽带测速重庆电信光纤宽带网络,内外网络和电脑等设备都没发生变化的情况下,办理了从20M提速到100M业务。
100m网站空间 1g虚拟主机 个人域名备案 vir awardspace 60g硬盘 主机屋免费空间 贵州电信宽带测速 http500内部服务器错误 天猫双十一抢红包 2017年万圣节 圣诞节促销 亚洲小于500m 美国堪萨斯 四核服务器 万网空间购买 视频服务器是什么 重庆电信服务器托管 独立主机 贵阳电信 更多