У меня странная проблема с вызовами REST. На стороне сервера у меня есть машина Windwos с IIS
У меня есть список идентификаторов (около 8000 - я пробовал и с меньшим количеством записей) для каждого из этих идентификаторов мне нужно сделать 3 разных REST вызовы (2x GET и один PUT).
Моя аутентификация находится в начале, и я получаю файл cookie сеанса, который затем сохраняется для всех дальнейших вызовов для авторизации. В конце делаю Выход из системы.
Теперь проблема. При использовании C# в Windows приведенная выше логика работает должным образом. В Linux bash время от времени совершенно случайно я получаю ошибку 401 Unauthorized. Таким образом, это не связано ни с каким конкретным идентификатором или вызовом REST. Следующий вызов с тем же файлом cookie снова будет успешным. Есть ли у вас какие-либо идеи, что может вызвать проблему. Клиент использует JAVA в LINUX, и у него та же проблема.
Я попробовал установить время ожидания в секунду между вызовами, но это не сработало.
Я включил полную трассировку в IIS и подробную информацию о вызове bash, а в IIS я вообще не вижу этих 401-запросов, в то время как многословие четко указывает на 401. Если я не выполню аутентификацию в начале, все будет неудачно попытки четко видны в журнале IIS.
#!/bin/bash
#--------------------- LOGIN CALL ---------------------
"" > output.txt
curl -s -c cookie.txt -X POST "https://www.myapi.si/auth/apphost" -H "Content-Type: application/json" -d '{"authString":"Module=DialogUser;User=userTest;Password=Password123."}'
#--------------------- CALL GET ---------------------
objectId=("104569", "105079", "103103", "97267", "106385")
for item in "${objectId[@]}"; do
#--------------------- CALL GET CCCEmployeeDataSlim ---------------------
echo "$item"
echo "$item" >> output.txt
myDate=$(date -u +"%H:%M:%S")
echo "$myDate" >> output.txt
curl -s -b "cookie.txt" -X GET --no-buffer "https://www.myapi.si/api/entities/GetOb ... lkReadOnly" -H "Accept: application/json" >> output.txt
sleep 1
echo "" >> output.txt
echo "....................." >> output.txt
#--------------------- CALL GET CCC_IsAccountValid ---------------------
curl -s -b "cookie.txt" -X PUT -H "Content-Type: application/json" --no-buffer "https://www.myapi.si/api/script/IsAccountValid" -d '{"parameters": ["'$item'","2024-9-19"]}' >> output.txt
sleep 1
echo "" >> output.txt
echo "....................." >> output.txt
#--------------------- CALL GET CCCSecondaryIdentities ---------------------
curl -s -b "cookie.txt" -X GET --no-buffer "https://www.myapi.si/api/entities/GETSe ... lkReadOnly" -H "Accept: application/json" >> output.txt
sleep 1
echo "" >> output.txt
echo "--------------------- NEXT ---------------------" >> output.txt
done
Подробнее здесь: https://stackoverflow.com/questions/790 ... -from-bash
Случайная ошибка 401 Несанкционировано при вызове REST API из bash ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение