【发布时间】:2020-08-10 18:45:33
【问题描述】:
我正在使用 Fedex 运输 API 创建运单。间歇性地我收到以下错误 我发送 API 请求:
Warning: SoapClient::SoapClient(): I/O warning : failed to load external entity "/home/user/public_html/includes/modules/vendor/jeremy-dunn/php-fedex-api-wrapper/src/FedEx/_wsdl/UploadDocumentService_v11.wsdl" in /home/user/public_html/includes/modules/vendor/jeremy-dunn/php-fedex-api-wrapper/src/FedEx/AbstractRequest.php on line 53
Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from '/home/user/public_html/includes/modules/vendor/jeremy-dunn/php-fedex-api-wrapper/src/FedEx/_wsdl/UploadDocumentService_v11.wsdl' : failed to load external entity "/home/user/public_html/includes/modules/vendor/jeremy-dunn/php-fedex-api-wrapper/src/FedEx/_wsdl/UploadDocumentService_v11.wsdl" in /home/user/public_html/includes/modules/vendor/jeremy-dunn/php-fedex-api-wrapper/src/FedEx/AbstractRequest.php on line 53
奇怪的是,这只发生在某些货物上。例如,我将有发货 A、B、C。发货 A 会正常发货,B 会抛出错误,C 会正常发货,我会回去重试 B,但它仍然会失败。我会一遍又一遍地尝试它,然后最终它会通过(稍后随机时间,API 请求没有变化)。
另一个奇怪的事情是我在本地加载 WSDL,所以加载它应该不会有任何问题。谷歌搜索我发现当您从外部源加载 WSDL 时最常出现此问题。
当我初始化我的 SOAP 客户端时,我会传递静态 WSDL 本地路径以及以下选项:
$options = array(
'cache_wsdl' => 0,
'trace' => 1,
'stream_context' => stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
)));
有人知道它是什么吗?
【问题讨论】:
标签: php soap soap-client fedex