2016-05-02 2 views
0

Привет, я пытаюсь получить некоторые данные через файл WSDL с помощью NuSoap.Nusoap PHP Client - Ошибка 500

Путь к файлу wsdl и конечной точке приведен ниже.

До сих пор, что у меня есть следующий:

try { 
       require_once('../includes/nusoap/lib/nusoap.php'); 

       $wsdl = 'https://service.stadt-zuerich.ch/jobs-ws/JobServiceV1/JobServiceV1.wsdl'; 
       $endpoint = 'https://service.stadt-zuerich.ch/jobs-ws/JobServiceV1'; 
       $username = "xxx"; 
       $password = "xxx"; 

       $client = new nusoap_client($wsdl,true); 

       $client->setEndpoint($endpoint); 
       $client->namespaces = array(
        'SOAP-ENV'=>"http://schemas.xmlsoap.org/soap/envelope/", 
        'v1'=>"http://egov.stzh.ch/jobs/service/v1" 
       ); 
       $client->setHTTPEncoding ($enc='gzip, deflate'); 
       $client->loadWSDL(); 
       $client->soap_defencoding = 'utf-8'; 

       $header = '<wsse:Security SOAP-ENV:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsswssecurity-secext-1.0.xsd"> 
        <wsse:UsernameToken> 
         <wsse:Username>'.$username.'</wsse:Username> 
         <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wssusername-token-profile-1.0#PasswordText">'.$password.'</wsse:Password> 
        </wsse:UsernameToken> 
       </wsse:Security>'; 

       $call = 'getJobs'; 
       $param = array();  
       $result = $client->call($call,$param,'','',$header); 

       echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>'; 
       echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>'; 
       echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>'; 

      } catch (SoapFault $e) { 
       die($e->getMessage()); 
      } 

Проблема заключается в том, что я получаю внутреннюю ошибку сервера 500 при попытке получить данные. Пароль и имя пользователя верны (пробовали в приложении SoapUI, и там я получаю все данные.)

Для пользователя и пароля я попытался установить SoapHeader, как в приведенном выше примере, и я также попробовал следующее , оба не работают.

$client->setCredentials($username,$password,'basic'); 

Конечная точка также должна быть правильной, и я получаю тот же заголовок, что и приложение SoapUI. Я не могу думать о каких-либо других проблемах или решениях.

Это моя просьба Мыло:

<?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://egov.stzh.ch/jobs/service/v1"> <SOAP-ENV:Header> <wsse:Security SOAP-ENV:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsswssecurity-secext-1.0.xsd"> <wsse:UsernameToken> <wsse:Username>xxx</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wssusername-token-profile-1.0#PasswordText">xxx</wsse:Password> </wsse:UsernameToken> </wsse:Security> </SOAP-ENV:Header> <SOAP-ENV:Body> <getJobs xmlns="http://egov.stzh.ch/jobs/service/v1"></getJobs> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

и это один мой мыло ответ:

HTTP/1.1 500 Internal Server Error 
Date: Mon, 02 May 2016 16:42:52 GMT 
Server: Entry Server 
Last-Modified: Wed, 20 Jan 2016 15:39:36 GMT 
ETag: "9ed-f19-529c5cb14fe00" 
Accept-Ranges: bytes 
Content-Length: 3865 
Content-Type: text/html 
Set-CookieSCDID_S=Zp0F6_uw2M4ClToXcA9L4bu6oav0UeSztcleiUXqkuT8XUl2mDBu1w$$; path=/;  Secure 
Connection: close 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"> 
<head> 
<title>Stadt Z&uuml;rich: Interner Verarbeitungsfehler (Error 500)</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 

<meta http-equiv="cache-control" content="no-cache" /> 
<meta http-equiv="Pragma" content="no-cache" /> 
<meta http-equiv="Expires" content="-1" /> 
</head> 

Кто-нибудь имеет какие-либо идеи, что я делаю не так? Я ценю каждую помощь, так как я часами сижу на этой проблеме.

Большое спасибо

ответ

0

Какую версию PHP вы используете? Я думаю, что nusoap не поддерживает PHP 7, и я также 500 ошибок при попытке запустить nusoap на сервере с PHP 7.

+0

Я использую \t PHP Версия 5.6.21 –

+0

Nusoap по мере загрузки не поддерживается PHP 7, но его можно легко модифицировать для поддержки. Он не поддерживает класс и функцию с тем же именем. Например, есть 'class nusoap_base' и' function nusoap_base'. Изменение его на 'function __construct()' сделает его корректным с PHP 7. – justanotherprogrammer

+0

Были и другие изменения, необходимые, например, прекратить использование некоторых констант PHP 5. В настоящее время существует несколько php7-репозиций для nusoap в github: https://github.com/codecasts/nusoap-php7 – jackbravo

Смежные вопросы