服务器使用CURL工具,对一个请求中的变量读取文件中批量数据进行动态赋值,然后进行请求

    技术2023-08-22  109

    一、安装CURL

    首先yum安装wget

    yum -y install wget

    切换到自定义的下载安装包目录software

    1.下载curl包(可以到https://curl.haxx.se/download/ 下载不同的版本)

    wget https://curl.haxx.se/download/curl-7.70.0.tar.gz

    2.解压文件

    tar -xzvf curl-7.70.0.tar.gz

    3.进入解压后的目录

    cd curl-7.70.0

    4.配置,指定安装的目录,这里是/gangye/tools/curl,分别执行

    ./configure --prefix=/gangye/tools/curl make

    执行./configure出现

    configure: error: in `/software/curl-7.70.0':

    configure: error: no acceptable C compiler found in $PATH

    原因是: 缺少gcc编译环境

         配置yum,可以用yum install -y gcc

         没有配置yum:可以安装gcc的安装包

    安装gcc

    安装gcc成功后,再次重复之前的config以及make操作

    5.安装

    make install

    6.至此安装成功,使用指令测试是否安装成功

    curl --version curl http://www.baidu.com

    tips:关于环境变量的问题(由于测试没有环境变量的问题出现,直接可以使用,重启后,在任何目录下都可以正常使用curl,此处没有执行下面的配置,后期出现再配置)

    vi /etc/profile export PATH=$PATH:/gangye/tools/curl

    使用shell脚本执行curl进行读取文件跑批

    搭建一个http请求的demo,http://192.168.91.1:8089/testCurl/createStudent,在请求体重对应的json,

    可以向数据库中插入一条记录。

    但是现在需要脚本文件读取一个文件中的数据(文件路径/gangye/stuFile),批量调用路由,将数据存到数据库中

    将stuFile里的数据使用curl指令结合shell脚本文件存储到数据库中

    步骤:

    1.创建一个脚本文件testCurlShellWithReafFile.sh

    vi testCurlShellWithReafFile.sh

    2.在里面编写文件内容(由于我的返回报文是{"code":200,"message":"ok"},所以我根据返回报文是否有"message":"ok"判断是否执行成功)

    #!/bin/bash for line in $(cat $1) do curl "http://192.168.91.1:8089/testCurl/createStudent" -H "Content-Type:application/json" -X POST -d '{ "stuNo": "'"$line"'" } ' |grep -w '"message":"ok"' if [ $? -eq 0 ];then echo "success" else echo $line echo "fail" exit 1 fi done

    编写完后保存

    3.然后给脚本文件增加可执行权限,并执行

    chmod +x ./testCurlShellWithReafFile.sh sh testCurlShellWithReafFile.sh /gangye/stuFile

    可以看到结果:

    再看数据库的记录,已经保存进去

    注意:脚本文件在windows编写完,通过ftp传输到虚拟机的linux执行可能报语法错误 语法错误:未预期的文件结尾,我就遇到了,查看shell脚本没有任何问题,然后就在linux中手敲指令了,也可以参考下面的解决方法

    https://www.cnblogs.com/lurenjia1994/p/9485682.html

    Processed: 0.009, SQL: 9