我已成功创建了一个客户端和服务器soap对象......但我认为在服务器端缓存存在真正的问题.我正在禁用客户端和服务器脚本上的所有缓存:
ini_set("soap.wsdl_cache", "0");
ini_set("soap.wsdl_cache_ttl", "0");
ini_set("soap.wsdl_cache_enabled", "0");
Run Code Online (Sandbox Code Playgroud)
但无论我做什么,我似乎从服务器得到完全相同的响应.我已经更改了对象名称,更改了WSDL名称,甚至在对象名称后附加了一个时间戳,以确保每次调用都不一样.然后突然,大约10或20分钟左右它会更新,我会得到一个不同的回应.我已经检查了phpinfo(),它说缓存ttl是一天(全局),所以我认为它肯定比那短.
关于杀死任何类型的缓存的任何想法?
您可以尝试将选项传递给 SOAP 对象:
$client = new SoapClient("some.wsdl", array('cache_wsdl' => WSDL_CACHE_NONE));
$server = new SoapServer("some.wsdl", array('cache_wsdl' => WSDL_CACHE_NONE));
Run Code Online (Sandbox Code Playgroud)
如果这没有帮助,请尝试清除 wsdl 缓存文件。在 Linux 上,它通常位于 /tmp 文件夹中,名称以wsdl-. 如果清除此文件没有帮助,也许使用了其他缓存?它只是 SoapServer 还是使用了一些额外的库?
| 归档时间: |
|
| 查看次数: |
4122 次 |
| 最近记录: |