我有一个 PHP 脚本,它向我工作的公司的不同部门拥有的 ASMX API 发送 SOAP 请求。我在我的个人公司 PC 上的 WAMP 环境中开发了这个脚本,它在那个环境中运行良好,成功地接收和解析响应。但是,当我将此脚本上传到基于 LAMP 的开发服务器(刚刚设置)并尝试通过 Web 浏览器运行它时,我收到 500 内部服务器错误。设置服务器的 Web 工程师说他安装并启用了 PHP SOAP 扩展。有没有人知道下面代码中使用的任何其他需要在服务器上激活的东西,如果没有它会导致 500 错误?
这是发送请求的代码,减去 API 正确处理的实际 XML 正文。此片段后面的代码只是从返回的数组中提取各种值并将它们回显出来。
//Common SOAP client options that can be set.
$clientOptions = array(
'exceptions'=>true,
'trace'=>1,
'cache_wsdl'=>WSDL_CACHE_NONE,
'location' => $endpointURL);
//The creation of the client object. We pass it a reference to the WSDL.
$requestXML = '<GetRateQuote xmlns="<URL>">
CORRECTLY FORMATTED XML IS HERE
</GetRateQuote>';
$requestObj = new SoapVar($requestXML,XSD_ANYXML);
$client = new SoapClient($endpointURL . "?wsdl", $clientOptions);
//Retrieve the response.
$result = $client->GetRateQuote($requestObj);
//Put the data into a variable to be parsed
$data = $result->GetRateQuoteResult;....