一、linux中如何安裝Curl,步驟如下:
1.下載
wget http://curl.haxx.se/download/curl-7.38.0.tar.gz
注意:
如果命令執行失敗,請使用瀏覽器打開鏈接進行下載,然後在Linux上使用“rz”命令上傳用瀏覽器下載好的文件,再執行下面的步驟。
2.解壓
tar -xzvf curl-7.38.0.tar.gz
3.安裝
cd curl-7.38.0
./configure
make
make install
4.完成
二、linux中使用Curl發起Get、Post請求:
Windows/mac環境上有很多接口測試的工具,如soapui、postman等,但這些工具在linux平臺上使用起來相對不那麼便捷。
有時候當我們要測試一些外部接口時,當本地無權調用測試路徑時,需要將測試建立在linux平臺,除了封裝簡單的請求代碼進行實現外,可通過curl工具實現
1、測試get請求
$ curl http://www.linuxidc.com/login.cgi?user=test001&password=123456
2、測試post請求
$ curl -d "user=nickwolfe&password=12345" http://www.linuxidc.com/login.cgi
3、xml格式post請求
接口如下:
請求方式:
方式一:發送磁盤上面的xml文件(推薦)
[plain] view plain copy
root [ /apps ]$ curl -X POST -H 'content-type: application/xml' -d @/apps/myxmlfile.txt http://172.19.219.xx:8081/csp/faq/actDiaUserInfo.action
ps:其中myxmlfile.txt爲磁盤上面的xml文件,後面爲請求路徑
方式二:在命令行直接發送xml結構數據
[plain] view plain copy
root [ /apps ]$ curl -H 'content-type: application/xml' -X POST -d '<?xml version="1.0" encoding="UTF-8"?><userinfoReq><subsNumber>13814528620</subsNumber><type>3</type></userinfoReq>' http://172.19.219.xx:8081/csp/faq/actDiaUserInfo.action
或者
[plain] view plain copy
root [ /apps ]$ echo '<?xml version="1.0" encoding="UTF-8"?><userinfoReq><subsNumber>13814528620</subsNumber><type>3</type></userinfoReq>'|curl -X POST -H'Content-type:text/xm' -d @- http://172.19.xx.xx:8081/csp/faq/actDiaUserInfo.action
ps:其中<?xml version...>就是要post的xml 文件,後面是請求路徑,linux上雙引號或單引號之間嵌套需要使用反斜槓 \ 進行轉義
響應消息:
[plain] view plain copy
<?xml version="1.0" encoding="utf-8"?><result><result_code>0</result_code><result_text>success</result_text><getUserinfoRsp><userInfo><identityID>1117384802</identityID><phone>13814528620</phone><email>[email protected]</email><accountID></accountID><province>江蘇</province><city>南京</city><passId>7775637869243</passId></userInfo></getUserinfoRsp></result>
4、json格式post請求
接口如下:
請求消息:
方式一:發送磁盤上面的JSON文件(推薦)
[plain] view plain copy
root [ /apps ]$ curl -X POST -H 'content-type: application/json' -d @/apps/myjsonfile.txt http://192.168.129.xx/AntiRushServer/api/ActivityAntiRush
ps:其中myjsonfile.txt爲磁盤上面的JSON文件,後面爲請求路徑
方式二:在命令行直接發送JSON結構數據
[plain] view plain copy
root [ ~ ]$ curl -H 'content-type: application/json' -X POST -d '{"accountType":"4","channel":"1","channelId":"YW_MMY","uid":"13154897541","phoneNumber":"13154897541","loginSource":"3","loginType":"1","userIp":"192.168.2.3","postTime":"14633fffffffffff81286","userAgent":"Windows NT","imei":"352600051025733","macAddress":"40:92:d4:cb:46:43","serialNumber":"123"}' http://192.168.129.xx/AntiRushServer/api/ActivityAntiRush
響應消息:
[plain] view plain copy
{"code":"4000","message":"參數錯誤:time的值不是UInt"}
參考文章: