0)); v-6ren">
gpt4 book ai didi

php - 运行 soapclient 时出现内部服务器错误

转载 作者:行者123 更新时间:2023-12-01 09:59:14 26 4
gpt4 key购买 nike

对于这里的专业人士来说,这应该是一件容易的事。我正在使用 soapClient php 库进行简单调用(请参见下面的代码)。

    <?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
$url = "http://webservices.daehosting.com/services/TemperatureConversions.wso?WSDL";

$client = new SoapClient($url, array("trace" => 1, "exception" => 0));

var_dump($client->__getFunctions());

$SOAPCall = "CelciusToFahrenheit";
$SoapCallParameters = "30";
$obj = $client->CelciusToFahrenheit($SoapCallParameters);
var_dump($obj);

var_dump($client->getLastRequest());
?>

</body>

当我执行时,出现以下错误。我查看了 Apache 错误日志,发现了同样的错误。

Fatal error: Uncaught SoapFault exception: [HTTP] Internal Server Error in C:\wamp\www\phpSandbox\index.php:16 Stack trace: #0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://webservi...', '', 1, 0) #1 C:\wamp\www\phpSandbox\index.php(16): SoapClient->__call('CelciusToFahren...', Array) #2 C:\wamp\www\phpSandbox\index.php(16): SoapClient->CelciusToFahrenheit('30') #3 {main} thrown in C:\wamp\www\phpSandbox\index.php on line 16

我也阅读了一些面临类似问题但无法找到解决方案的人的资料。

我确定 soapClient 库已激活,因为以下代码有效

var_dump($client->__getFunctions());

输出:

array (size=4)
0 => string 'CelciusToFahrenheitResponse CelciusToFahrenheit(CelciusToFahrenheit $parameters)' (length=80)
1 => string 'FahrenheitToCelciusResponse FahrenheitToCelcius(FahrenheitToCelcius $parameters)' (length=80)
2 => string 'WindChillInCelciusResponse WindChillInCelcius(WindChillInCelcius $parameters)' (length=77)
3 => string 'WindChillInFahrenheitResponse WindChillInFahrenheit(WindChillInFahrenheit $parameters)' (length=86)

解决此错误的任何帮助以及对错误的可能解释都将非常有用。

最佳答案

Internal Server Error 通常意味着服务器收到了您的请求,但它不喜欢其中一个参数。

查看您的 WSDL,我可以看到 CelciusToFahrenheit 需要一个具有此定义的参数:

<xs:complexType>
<xs:sequence>
<xs:element name="nCelcius" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>

复杂类型是一个对象。所以试试这个:

$SoapCallParameters = new stdClass();
$SoapCallParameters->nCelcius = 30;
$obj = $client->CelciusToFahrenheit($SoapCallParameters);

关于php - 运行 soapclient 时出现内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18794982/

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