PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   PHP SOAP Client (http://www.selfphp.de/forum/showthread.php?t=25507)

energy85 12.02.2015 17:49:20

PHP SOAP Client
 
Hallo,
ich beschäftige mich seit gestern mit PHP SOAP und ich hab da ein kleines logisches (?) Problem.


Teil aus der WSDL:
HTML-Code:

<xsd:complexType name="SearchDate">
  <xsd:all>
    <xsd:element name="strictDate" type="xsd:string" nillable="true"/>
    <xsd:element name="minDuration" type="xsd:int"/>
    <xsd:element name="maxDuration" type="xsd:int"/>
    <xsd:element name="fromDate" type="xsd:string"/>
    <xsd:element name="toDate" type="xsd:string"/>
    <xsd:element name="duration" type="xsd:int"/>
  </xsd:all>
</xsd:complexType>


PHP Array:
PHP-Code:

"date" => array(6) (
     
"strictDate" => string(4"none"
     "minDuration" 
=> integer 1
     
"maxDuration" => integer 28
     
"fromDate" => string(10"22.02.2015"
     "toDate" 
=> string(10"24.03.2015"
     "duration" 
=> string(0""



Inhalt im Request:
HTML-Code:

<date xsi:type="ns1:SearchDate">
  <strictDate xsi:type="xsd:string">none</strictDate>
  <minDuration xsi:type="xsd:int">1</minDuration>
  <maxDuration xsi:type="xsd:int">28</maxDuration>
  <fromDate xsi:type="xsd:string">22.02.2015</fromDate>
  <toDate xsi:type="xsd:string">24.03.2015</toDate>
  <duration xsi:type="xsd:int">0</duration>
</date>


Eigentlich sieht für mich das Ergebnis im Request korrekt aus, aber leider verlangt der SOAP-Server die Angabe der Integer-Werte bei 0 als NULL.

HTML-Code:

<minDuration xsi:nil="true"/>
<maxDuration xsi:nil="true"/>
<duration xsi:nil="true"/>

Hat jemand einen Tipp wie ich das gelöst bekomme? Strings werden bei leer immer mit NULL übertragen, aber bei Integer macht er immer die Zahl 0.

Falls nötig: PHP Version 5.6.3


Ich hoffe jemand kann mir helfen, ich finde einfach meinen Fehler nicht. :-(
Gruß

energy85 12.02.2015 18:25:44

AW: PHP SOAP Client
 
*facepalm*

Lösung: Wert auf bool Null setzen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:57:32 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.