我正在使用php => 7的基本SOAP客户端向第三方Web服务发出请求。身份验证工作正常,我可以从中获取所有数据,但是无法请求发送一些数据。
所需的基本数据(以xml格式)是:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:day="https://daywize.mendixcloud.com">
<soapenv:Header>
<day:authentication>
<username>someusername</username>
<password>somepassword</password>
</day:authentication>
</soapenv:Header>
<soapenv:Body>
<day:SollicitatieWebservicesVerwerken>
<MedewerkerTemp>
<Achternaam>exampleinput</Achternaam>
<EmailadresPrive>email@example.nl</EmailadresPrive>
<EmailadresWerk></EmailadresWerk>
<GeboorteDatum>2002-05-30T09:30:10.5</GeboorteDatum>
<Geboortenaam></Geboortenaam>
<GeboortePlaats>exampleinput</GeboortePlaats>
<Geslacht>Man</Geslacht>
<OpmerkingenInteresses></OpmerkingenInteresses>
<OpmerkingenMotivatie></OpmerkingenMotivatie>
<OpmerkingenOpleiding></OpmerkingenOpleiding>
<OpmerkingenWerkervaring></OpmerkingenWerkervaring>
<Plaats>exampleinput</Plaats>
<StraatInclNummer></StraatInclNummer>
<Postcode></Postcode>
<Roepnaam>Henk</Roepnaam>
<TelefoonVast>010-123456789</TelefoonVast>
<TelefoonMobiel></TelefoonMobiel>
<TelefoonWerk></TelefoonWerk>
<Voorletters>H</Voorletters>
<Voorvoegsels></Voorvoegsels>
<_InterneSollicitatie>false</_InterneSollicitatie>
<_Mobiliteitskandidaat>false</_Mobiliteitskandidaat>
<VacatureNummer></VacatureNummer>
<Base64Decode_CV></Base64Decode_CV>
<Base64Decode_Motivatiebrief></Base64Decode_Motivatiebrief>
<Base64Decode_ExtraBijlage></Base64Decode_ExtraBijlage>
<Bestandsnaam_CV>CV</Bestandsnaam_CV>
<Bestandsnaam_Motivatiebrief></Bestandsnaam_Motivatiebrief>
<Bestandsnaam_ExtraBijlage></Bestandsnaam_ExtraBijlage>
<_OpenSollicitatie>true</_OpenSollicitatie>
<LinkedIn>?</LinkedIn>
<Twitter>?</Twitter>
<_StopzettenJobalert>false</_StopzettenJobalert>
<_LangereBewaartermijnAVG>false</_LangereBewaartermijnAVG>
</MedewerkerTemp>
</day:SollicitatieWebservicesVerwerken>
</soapenv:Body>
</soapenv:Envelope>
我对服务器执行的SOAP请求如下:
try {
$this->_SoapClient->webserviceFunctionName([
'MedewerkerTemp' => [
'Achternaam' => 'exampleinput',
'EmailadresPrive' => 'email@example.nl',
'EmailadresWerk' => '',
'GeboorteDatum' => '2002-05-30T09:30:10.5',
'Geboortenaam' => '',
'GeboortePlaats' => 'exampleinput',
'Geslacht' => 'Man',
'OpmerkingenInteresses' => '',
'OpmerkingenMotivatie' => '',
'OpmerkingenOpleiding' => '',
'OpmerkingenWerkervaring' => '',
'Plaats' => 'exampleinput',
'StraatInclNummer' => '',
'Postcode' => '',
'Roepnaam' => 'Henk',
'TelefoonVast' => '010-123456789',
'TelefoonMobiel' => '',
'TelefoonWerk' => '',
'Voorletters' => 'H',
'Voorvoegsels' => 'test',
'_InterneSollicitatie' => false,
'_Mobiliteitskandidaat' => false,
'VacatureNummer' => '',
'Base64Decode_CV' => '',
'Base64Decode_Motivatiebrief' => '',
'Base64Decode_ExtraBijlage' => '',
'Bestandsnaam_CV' => 'CV',
'Bestandsnaam_Motivatiebrief' => '',
'Bestandsnaam_ExtraBijlage' => '',
'_OpenSollicitatie' => true,
'LinkedIn' => '?',
'Twitter' => '?',
'_StopzettenJobalert' => false,
'_LangereBewaartermijnAVG' => false
],
]);
} catch (Exception $e) {
var_dump(
$e->getMessage(),
$this->_SoapClient->__getLastRequest(),
$this->_SoapClient->__getLastResponse()
);
}
由于该请求返回诸如“内部服务器错误”之类的内部服务器错误消息,因此该请求始终最终在catch中。另外,当我添加ini_set('display_errors', 1); error_reporting(E_ALL);
时,我不知道是什么原因。我希望我将所有基本需要的值发送给它。我希望有人可以帮助我。
更新:
当我像下面这样回应请求时,输出将是:
echo "REQUEST:\n" . $this->_SoapClient->__getLastRequest() . "\n";
请求: someUernameSomePasswordMedewerkerTempAchternaamexampleinputEmailadresPriveemail@example.nlEmailadresWerkGeboorteDatum2002-05-30T09:30:?10.5GeboortenaamGeboortePlaatsexampleinputGeslachtManOpmerkingenInteressesOpmerkingenMotivatieOpmerkingenOpleidingOpmerkingenWerkervaringPlaatsexampleinputStraatInclNummerPostcodeRoepnaamHenkTelefoonVast010-123456789TelefoonMobielTelefoonWerkVoorlettersHVoorvoegselstest_InterneSollicitatiefalse_MobiliteitskandidaatfalseVacatureNummerBase64Decode_CVBase64Decode_MotivatiebriefBase64Decode_ExtraBijlageBestandsnaam_CVCVBestandsnaam_MotivatiebriefBestandsnaam_ExtraBijlage_OpenSollicitatietrueLinkedIn微_StopzettenJobalertfalse_LangereBewaartermijnAVGfalse