2013-03-05 55 views
3

我正在使用PHP中的SoapServer处理web服务。以前,我使用完全相同的技术创建了另一个Web服务。我的新项目在同一台服务器上,但在另一个子目录中。 在服务的URL中,soapserver是包含的版本号。 这是我SoapServer的是PHP创建方式:PHP SoapServer&符号编码

$server = new SoapServer("https://".DOMAIN."/webservice/index.php?v=1.0.0&wsdl=1"); 
$server->setClass('SoapHandler'); 
$server->handle(); 

整个PHP页面在我的例子SOAP服务一样,只有网址是不同的ofcourse。 当我与soapUI的web服务的调用,将返回以下错误:

SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://myurl.com/webservice/index.php?v=1.0.0&wsdl=1' : failed to load external entity "https://myurl.com/webservice/index.php?v=1.0.0&wsdl=1" 

正如你所看到的,符号被替换为&。我试图将编码更改为UTF-8,但这也不起作用。

谁能帮我一把吗?

回答

1

我们有一个.htaccess,只允许我的IP地址,同时它也应该允许服务器的IP ..删除这个解决了这个问题。谢谢你的帮助!

2

您必须在您的php.ini文件中启用openssl模块。否则,您无法使用SSL(https)访问域。

否则,您应该从您的本地服务器检查您的域,并检查使用curl或lynx返回WSDL文件。

+0

另一个web服务在同一个域(因此是web服务器),并且那个实际上工作..所以我想我的web服务器设置是好的? – harmjanr 2013-03-05 08:50:14

+0

你可以用phpinfo检查它。 Apache中的SSL与php openssl不同,对不起,我更新了答案。你必须在你的php.ini文件中启用你的openssl。 – Stony 2013-03-05 08:52:41

+0

已启用SSL,我使用phpinfo进行了检查。但SSL设置为de php.ini中的整个服务器,并在同一服务器上的其他肥皂服务工作.. – harmjanr 2013-03-05 08:55:06