Зациклите два разных CURL-запроса? - PullRequest
0 голосов
/ 15 мая 2019

Я настраиваю сценарий оболочки для обработки запросов curl для меня.

API требует запрос OPTION, прежде чем я смогу зациклить все следующие запросы POST со своими параметрами данных.

Кто-нибудь знает, как я могу улучшить свой код и синтаксис, чтобы один раз выполнить запрос 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 голосов
/ 15 мая 2019

Я решил это сам в основном я использовал shellcheck, чтобы дать мне указатели на ошибки синтаксиса, и обнаружил, что у меня есть один в "$ (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
...