linux通过curl方式调用接口

今天遇到个需求,linux上将txt文件导入数据库,需要监测txt中的数据是否完全导入了数据库,即txt中的行数是否和数据库中的行数是否一致的问题。问题是获取txt行数需要执行linux指令,需要java代码知道IP 端口 用户名 密码;线上安全问题,根本不允许java应用有这么大的权限。

经过tutor指点,可以反过来,让linux上使用指令调用我的java应用即可,即使用curl指令调用java接口。

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文件(推荐)
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文件,后面为请求路径

linux通过curl方式调用接口_第1张图片

方式二:在命令行直接发送xml结构数据

root [ /apps ]$ curl -H 'content-type: application/xml' -X POST -d '138145286203' http://172.19.219.xx:8081/csp/faq/actDiaUserInfo.action
或者

root [ /apps ]$ echo '138145286203'|curl -X POST -H'Content-type:text/xm' -d @- http://172.19.xx.xx:8081/csp/faq/actDiaUserInfo.action
ps:其中就是要post的xml 文件,后面是请求路径,linux上双引号或单引号之间嵌套需要使用反斜杠 \ 进行转义

响应消息:

0success111738480213814528620[email protected]江苏南京7775637869243
 

4、json格式post请求

方式一:发送磁盘上面的JSON文件(推荐)
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文件,后面为请求路径
linux通过curl方式调用接口_第2张图片

方式二:在命令行直接发送JSON结构数据
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
响应消息:
{"code":"4000","message":"参数错误:time的值不是UInt"}

方式一:发送磁盘上面的请求报文文件(推荐)
root [ /apps ]$ curl -H 'Content-Type: text/xml;charset=UTF-8;SOAPAction:""' -d @/apps/mysoapfile.xml http://172.18.173.xx:8085/csp-magent-client/madapterservices/madapter/lmCountAccessor
ps:其中myjsonfile.txt为磁盘上面的请求报文文件,后面为请求路径

linux通过curl方式调用接口_第3张图片

方式二:在命令行直接发送xml结构数据
[plain] view plain copy
root [ /apps ]$ curl -H 'content-type: application/xml' -d '160010649638838272613814528620]]>' http://172.18.173.xx:8085/csp-magent-client/madapterservices/madapter/lmCountAccessor  
响应消息
8

借鉴:https://blog.csdn.net/russ44/article/details/53308838

你可能感兴趣的:(linux)