使用curl命令发送POST请求批量添加用户


#!/bin/bash
# 日志记录
Log_File='result.log'
 
# 发送POST请求中的常量定义
userId="324c1737856149d19e027ad45e869666"
Authorization="Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJiYXNpYyIsInVzZXJfbmFtZSI6Indhbmdob25nd2VpIiwidXNlcl9zb3VyY2UiOiJURU5BTlQiLCJwYWFzVG9rZW4iOiIwMWZjNjMyMzlkZTA3OWRhZjI5NjFmNjIyMjA5MzgxYiIsImNhc0NsaWVudEFkZHIiOiIxNzIuMTguNDIuNzYiLCJ1c2VyQWdlbnQiOiJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvOTYuMC40NjY0LjkzIFNhZmFyaS81MzcuMzYiLCJkYXRhX3NvdXJjZSI6IlRFTkFOVCIsImNsaWVudF9pZCI6InBpZyIsInRpbWVfb3V0IjoxODAwMCwibGljZW5zZSI6Im1hZGUgYnkgbTgiLCJnaXRUb2tlbkluZnJhIjoiMTAyYjgwYjhkMmFlMDMyNTUzMzU5YTA4OTBlYTA2MDlkYTljNmM5OTlmMTlkOGUzM2VjOGVhZTQ3MTQ5NDg1ZiIsImdpdFRva2VuQ29kZSI6IjEwMmI4MGI4ZDJhZTAzMjU1MzM1OWEwODkwZWEwNjA5ZGE5YzZjOTk5ZjE5ZDhlMzNlYzhlYWU0NzE0OTQ4NWYiLCJ1c2VyX2lkIjoxMDAwNjQ4NCwibG9naW5fdGltZSI6MTY0MjU1NzAwNDM1OSwic2NvcGUiOlsic2VydmVyIl0sImlucHV0VXNlcm5hbWUiOiJ3YW5naG9uZ3dlaSIsImZyb20iOiJjYXMiLCJleHAiOjE2NDI1OTMwMDQsImRlcHRfaWQiOjExODk4LCJjdXN0X2lkIjoiMzI0YzE3Mzc4NTYxNDlkMTllMDI3YWQ0NWU4NjlhN2MiLCJqdGkiOiJhOGU5ZjdlMi0zZWY4LTQ0YzItOTQ5Ny0zMDMzMTAyOTk2NTMifQ.gkCOdu4mSVHod0Cdj5twXCihhq1vptH2SK-vrWv7cKs"
RequestURL="https://www.example.com/admin/user/$userId/createuser"
Header1="Authorization: $Authorization"
Header2="Content-Type: application/json; charset=UTF-8"
 
# 参数检测
usage (){
    if [ ! $1 ];then
        echo "Usage: $0 请指定需要操作的文件名!"
        exit 1
    fi
}
 
# 主函数
adduser (){
    i=1
    # 定义循环
    while read line;
    do
        echo `date "+%Y-%m-%d %H:%M:%S"` "正在读取第 $i 行:$line" | tee -a $Log_File
        echo `date "+%Y-%m-%d %H:%M:%S"` "正在格式化第 $i 行的数据..." | tee -a $Log_File
        # 将每一行放入数组变量
        arr=($line)
        # 根据实际场景定义发送的数据
        Data="{
            \"sysUser\": {
                \"custId\": \"$custId\",
                \"email\": \"${arr[0]}\",
                \"nickname\": \"${arr[1]}\",
                \"password\": \"${arr[2]}\",
                \"phone\": \"${arr[3]}\",
                \"delFlag\": 0,
                \"username\": \"${arr[4]}\",
                \"wxNumber\": null,
                \"qqNumber\": null,
                \"telPhone\": null,
                \"discipline\": \"\",
                \"schoolName\": \"\",
                \"graduateTime\": \"\",
                \"edu\": \"\",
                \"extInfo\": {
                    \"certificationPath\": []
                },
                \"skill\": [],
                \"skillInfo\": []
            },
            \"sysUserDepts\": [{
                \"deptId\": \"${arr[5]}\",
                \"primaryFlag\": true
            }],
            \"sysUserRoles\": [{
                \"roleId\": \"${arr[6]}\"
            }]
        }"
 
        echo `date "+%Y-%m-%d %H:%M:%S"` "开始处理第 $i 行..." | tee -a $Log_File
        # 主命令
        curl -sS -k -X POST -H "$Header1" -H "$Header2" -d "$Data" $RequestURL >> $Log_File 2>&1
        # 失败检测
        if [ $? != 0 ];then
            echo "请求失败,请检查日志记录!"
            exit 2
        fi
        echo `date "+%Y-%m-%d %H:%M:%S"` "第 $i 行处理完成!" | tee -a $Log_File
        echo `date "+%Y-%m-%d %H:%M:%S"` "---------------------------------------------------------------------------------------------------------------------" | tee -a $Log_File
        sleep 2
        let i=$i+1
    done < $1
}
 
usage $1
adduser $1
if [ $? == 0 ];then echo `date "+%Y-%m-%d %H:%M:%S"` "命令执行完成!" | tee -a $Log_File;fi