You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Bash调用REST API时随机出现401 Unauthorized问题排查

问题详情
  • 服务器环境:搭载IIS的Windows系统
  • 业务流程:需对约8000个ID分别执行2次GET、1次PUT共3种REST调用,流程为:先认证获取会话Cookie,后续调用复用该Cookie完成授权,最后执行登出操作
  • 异常现象:
    • Windows平台用C#实现逻辑完全正常
    • Linux Bash/Java实现时,随机出现401 Unauthorized错误,错误与特定ID或调用类型无关,使用相同Cookie的下一次调用可成功
    • 已尝试在调用间添加1秒延迟,问题仍未解决
  • 排查信息:
    • 开启IIS完整追踪及Bash调用verbose模式后发现:出现401错误时,IIS日志中无对应请求记录,但Bash verbose明确显示返回401;若未预先执行认证,所有失败请求均会在IIS日志中显示

附带Bash脚本

#!/bin/bash

#--------------------- 登录请求 ---------------------
"" > 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."}'

#--------------------- 数据请求 ---------------------

objectId=("104569", "105079", "103103", "97267", "106385") 
for item in "${objectId[@]}"; do
    #--------------------- 获取精简员工数据 ---------------------
    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
    #--------------------- 验证账户有效性 ---------------------
    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
    #--------------------- 获取次要身份信息 ---------------------
    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 "--------------------- 下一个ID ---------------------" >> output.txt
done

内容的提问来源于stack exchange,提问作者JerrySI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 04:28:11