我有一个PHP脚本,它将SOAP请求发送到ASMX API,该API由我工作的公司的不同部门拥有。我在个人公司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;....