SOAP UI调用REST API时Basic认证返回401 Unauthorized问题求助
SOAP UI调用Basic认证接口返回401问题解决方案
报错核心原因是SOAP UI默认的挑战式认证逻辑无法匹配服务端返回的空realm,而Java代码默认会提前携带认证头,不会触发该问题,可按以下步骤逐一排查解决:
开启预发送认证(优先级最高)
SOAP UI默认会先发送无认证的请求,等待服务端返回401挑战后才携带认证信息,对于返回空realm的服务该逻辑会失效:- 打开对应请求的「Auth」标签页,认证类型选择
Basic,填写正确的用户名密码 - 勾选Pre-emptive auth(预认证)选项,让SOAP UI直接在首次请求就携带Authorization头,无需等待挑战
- 重新发起请求测试
- 打开对应请求的「Auth」标签页,认证类型选择
校验请求头配置
确认SOAP UI没有自动篡改你需要的自定义请求头:
切换到「Headers」标签,确认以下三个头参数配置正确,不存在自动生成的重复值:SOAPAction:retrieveSummaryUser-Agent:Axis2Content-Type:text/xml; charset=UTF-8
全局认证配置校验
如果使用了SOAP UI全局认证配置,按以下步骤调整:- 打开「File」→「Preferences」→「HTTP Settings」
- 勾选「Authenticate pre-emptively」全局开启预认证
- 确认全局凭证的主机、端口匹配
auldslap540.sit.biz:9189,realm配置项留空
特殊字符编码适配
如果用户名/密码包含特殊字符:
在「Auth」标签页勾选「Encode credentials in UTF-8」,避免编码不一致导致认证信息校验失败
关键日志佐证:
DEBUG:auldslap540.sit.biz:9189 requires authentication with the realm 'null'
内容的提问来源于stack exchange,提问作者Redwood Thomas
相关产品推荐
相关产品推荐

