У меня странная проблема с вызовами 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#
Место общения программистов C#
-
Anonymous
1726752574
Anonymous
У меня странная проблема с вызовами 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/GetObjectData?where=objectId='$item'&loadType=BulkReadOnly" -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/GETSecondaryIdentities?where=objectId='$item'&loadType=BulkReadOnly" -H "Accept: application/json" >> output.txt
sleep 1
echo "" >> output.txt
echo "--------------------- NEXT ---------------------" >> output.txt
done
Подробнее здесь: [url]https://stackoverflow.com/questions/79002737/random-401-unauthorized-when-calling-rest-api-from-bash[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия