Привет, я пытаюсь получить некоторые данные через файл 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ü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>
Кто-нибудь имеет какие-либо идеи, что я делаю не так? Я ценю каждую помощь, так как я часами сижу на этой проблеме.
Большое спасибо
Я использую \t PHP Версия 5.6.21 –
Nusoap по мере загрузки не поддерживается PHP 7, но его можно легко модифицировать для поддержки. Он не поддерживает класс и функцию с тем же именем. Например, есть 'class nusoap_base' и' function nusoap_base'. Изменение его на 'function __construct()' сделает его корректным с PHP 7. – justanotherprogrammer
Были и другие изменения, необходимые, например, прекратить использование некоторых констант PHP 5. В настоящее время существует несколько php7-репозиций для nusoap в github: https://github.com/codecasts/nusoap-php7 – jackbravo