linux php soapclient 认证,php – 401身份验证SoapClient尝试获取模式文...

我的应用程序通常连接到第三方服务器以通过SOAP / WSDL获取数据:

$this->soap_client = new SoapClient("https://[the-domain]:443/[path]?wsdl", array(

'trace'=>1,

'login'=>$this->username,

'password'=>$this->password,

'exceptions' => true,

'cache_wsdl' => WSDL_CACHE_NONE

)

去年一切都很好,但他们最近更新了他们的WSDL文件,现在当应用程序尝试连接时,我收到以下两个错误:

SoapClient::SoapClient(http://[the-domain]:80/[path]?xsd=1): failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized

SoapClient::SoapClient(): I/O warning : failed to load external entity "http://[the-domain]:80/[path]?xsd=1"

当我查看WSDL XML文件时,看起来违规的可卸载文件是它试图导入的文档模式文件(schemaLocation):(来自WSDL ?

我一直在打击这个问题一段时间,据我所知,问题是两件事之一:

>当我在浏览器中加载该架构URL时(在浏览器身份验证之后),它会重定向到https url(并删除端口声明).尝试导入架构时,SOAP调用是否可能不遵循重定向?

>鉴于错误消息是401错误 – 在尝试导入架构时,SOAP调用是否可能没有传递凭据?模式文件需要与WSDL文件相同的身份验证,但是在尝试导入时服务器可能没有将身份验证扩展到模式?

假设这是第二个问题,是否有任何方法可以强制系统使用不同的架构URL而无需下载WSDL文件,编辑它,并在本地存储/引用它?如果是这样,我可以尝试传递URL中的凭据(http:// username:password @ domain ….)?

如果我唯一的注意事项是创建WSDL和XSD架构文件的修改副本,那么就这样吧,但我很想知道是否有人有任何想法可以让我避免这种情况(因为架构确实从时间变化 – 到时间).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值