SOAP PHP脚本返回一个空白屏幕

时间:2016-09-27 17:46:07

标签: php web-services soap soap-client

我有一个非常简单的PHP脚本,它向webservicex geoipservice发送SOAP请求

WSDL是http://www.webservicex.net/geoipservice.asmx?WSDL

PHP脚本如下:

$wsdl = 'http://www.webservicex.net/geoipservice.asmx?WSDL';

 $client = new SoapClient($wsdl, array('trace'=>1)); 
 $response = $client->GetGeoIP('IPAddress','198.252.206.16');

var_dump($response);
print_r(array_values($response));

然而它返回一个空白屏幕。

此处显示了SOAP UI测试,并且工作正常:SOAP UI Test

我确定方法是正确的,我真的看不出有什么问题。你能帮忙吗?

2 个答案:

答案 0 :(得分:0)

我强烈建议您使用WSDL到php生成器来确保发送请求的方式。目前我认为数据没有很好地定义为GetGeoIP等待拥有一个对象或一个数组,并且你给它2个参数而不是一个参数。

您应该尝试PackageGenerator项目。

答案 1 :(得分:0)

它显示一个空白页面,因为soap客户端会抛出异常,您可能将display_errors PHP设置为0error_reporting的某些生产值。

现在,对于" 为什么会抛出异常?"部分:

您没有为请求发送正确的值。您可以使用__getLastRequest的{​​{1}}方法检查您的肥皂请求。 查看wsdl,SoapClient soap调用需要类型为GetGeoIP的参数,该参数又包含节点名称IPAddress。您需要使用GetGeoIP构建它们或创建一个类(或使用wsdl到php生成器)。

以下是您的工作示例:

SoapVar