服務器使用CURL工具,對一個請求中的變量讀取文件中批量數據進行動態賦值,然後進行請求

一、安裝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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章