gpt4 book ai didi

php - SoapClient 不遵守 no_proxy 排除

转载 作者:太空宇宙 更新时间:2023-11-04 04:22:56 25 4
gpt4 key购买 nike

在 wsdl 模式下运行的 SoapClient 不支持操作系统代理排除,并且似乎没有直接添加它们的标志。

当模式定义同时引用内部和外部定义的模式时,这会带来困难。为了进行测试,我已将初始 wsdl 文档拉到本地。我已启用代理,因为架构引用了 w3.org 和其他一些基于互联网的架构定义。问题是本地文档仍然引用代理内部和外部的资源,一旦我启用代理,它就会通过它发送每个请求。

我有以下代码:

$client = new SoapClient('SomeResource.wsdl',array(
'proxy_host'=>'10.0.0.1',
'proxy_port'=>8080,
'soap_version'=>SOAP_1_1,
'exceptions'=>true,
'trace'=>1,
'cache_wsdl'=>WSDL_CACHE_NONE,
'login'=>'username',
'password'=>'password'
));

运行跟踪:

stat("http://localresource.localdomain.com:1080/some/version/Common.xsd", 0x7fffd94a36d0) = -1 ENOENT (No such file or directory)
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 7
fcntl(7, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(7, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(7, {sa_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("10.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)
... timeout here cause it's a local resource ...

我当然更改了名称以保护我的客户,但我的 no_proxy 列表中确实有 localdomain.com:

somehost:someuser> env |grep proxy
http_proxy=http://10.0.0.1:8080
ftp_proxy=http://10.0.0.1:8080
https_proxy=http://10.0.0.1:8080
no_proxy=localdomain.com,localhost,127.0.0.1

将 no_proxy 添加到 SoapClient 输入没有任何效果。

除了将所有模式拉入内部并修改所有这些引用以也指向本地定义的资源之外,有什么方法可以让 SoapClient 遵守 no_proxy 规则吗?

最佳答案

我最终提取了所有内部模式并修改了所有这些模式以也指向本地定义的模式。

关于php - SoapClient 不遵守 no_proxy 排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11615294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com