循环两个不同的CURL记录?

时间:2019-05-15 15:44:36

标签: shell curl sh git-bash

我正在设置一个shell脚本来为我处理curl请求。

在我可以使用数据参数循环以下所有POST请求之前,API需要一个OPTION请求。

任何人都知道我如何改进我的代码和语法,以使OPTIONS请求发生一次,然后循环POST请求。

感谢任何指针。

我查看了有关SH的不同文档,浏览了很多SO页面,但到目前为止还没有运气

#!/bin/bash
url="https://www.google.com"
    options="$(curl -s -X OPTIONS "$url"-H "Accept: */*"  -H "Access-Control-Request-Headers: authorization,content-type" -H "Access-Control-Request-Method: POST" -H "DNT: 1" -H "Origin: https://google.com" -H "User-Agent: Generic" -H "cache-control: no-cache")"
for options 
        do echo "$options" >> outputposts1.csv 2>&1
done
            for id in $(< idt.txt); 
                    do
                    posts="$(curl -v -s -m 5 -X POST -H "Accept: */*"  -H "Authorization: long.auth.key"  -H "Content-Type: application/json"  -H "DNT: 1"  -H "Origin: https://google.com"  -H "User-Agent: Generic"  -H "cache-control: no-cache" "$url" -d '{"profileid": "'"$id"'","content": "json content","programId": "numbers" \n')"
                    echo "$posts" >> outputposts2.csv 2>&1 
                    sleep 1s
done

OPTIONS请求的状态应该为200,随后的POST请求的状态代码应为201。

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题 基本上,我使用shellcheck来给我指针o语法错误,并发现我在“ $(curl)”中有一个,而json括号未正确关闭,并发现了以下语法

#!/bin/bash
url="https://www.google.com"
    options="$(curl -s -X OPTIONS "$url"-H "Accept: */*")"
for options 
        do echo "$options"
done
            for id in $(< idt.txt); 
                    do
                    posts="$(curl -v -s -m 5 -X POST -H "Accept: */*" "$url" -d '{"profileid": "'"$id"'","content": "json content","programId": "numbers"}')
                    echo "$posts"
                    sleep 1s
done