2017-11-20 1 views
0

So habe ich eine WSDL-Datei, die ich in PHP verwenden, um eine spezifische Antwort von <soap:address location="http://212.205.47.226:9003"/>Wenn Sie versuchen, Soap über PHP zu verwenden, wird der Fehler "Konnte nicht mit Host verbinden" zurückgegeben. Die gleiche WSDL-Datei mit SoapUi funktioniert gut. Was vermisse ich?

zu erhalten, die in der WSDL-Datei namens PELVG02.wsdl definiert ist. Sein Inhalt ist:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
<definitions name="PELVG02" targetNamespace="/PELVG02" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="/PELVG02" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <!-- Micro Focus NetExpress generated WSDL document--> 
    <types> 
     <schema elementFormDefault="qualified" targetNamespace="/PELVG02" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="/PELVG02"> 
     <element name="READ"> 
      <complexType> 
      <sequence> 
       <element name="pel_user_code" type="string"/> 
       <element name="pel_user_pass" type="string"/> 
       <element name="pel_apost_code" type="string"/> 
       <element name="pel_paral_name" type="string"/> 
       <element name="pel_paral_address" type="string"/> 
       <element name="pel_paral_area" type="string"/> 
       <element name="pel_paral_tk" type="string"/> 
       <element name="pel_paral_thl_1" type="string"/> 
       <element name="pel_paral_thl_2" type="string"/> 
       <element name="pel_service" type="string"/> 
       <element name="pel_baros" type="string"/> 
       <element name="pel_temaxia" type="string"/> 
       <element name="pel_paral_sxolia" type="string"/> 
       <element name="pel_sur_1" type="string"/> 
       <element name="pel_sur_2" type="string"/> 
       <element name="pel_sur_3" type="string"/> 
       <element name="pel_ant_poso" type="string"/> 
       <element name="pel_ant_poso1" type="string"/> 
       <element name="pel_ant_poso2" type="string"/> 
       <element name="pel_ant_poso3" type="string"/> 
       <element name="pel_ant_poso4" type="string"/> 
       <element name="pel_ant_date1" type="string"/> 
       <element name="pel_ant_date2" type="string"/> 
       <element name="pel_ant_date3" type="string"/> 
       <element name="pel_ant_date4" type="string"/> 
       <element name="pel_asf_poso" type="string"/> 
       <element name="pel_ref_no" type="string"/> 
      </sequence> 
      </complexType> 
     </element> 
     <element name="READResponse"> 
      <complexType> 
      <sequence> 
       <element name="st_flag" type="integer"/> 
       <element name="st_title" type="string"/> 
       <element name="vg_code" type="string"/> 
       <element name="return_vg" type="string"/> 
       <element name="epitagh_vg" type="string"/> 
      </sequence> 
      </complexType> 
     </element> 
     </schema> 
    </types> 
    <message name="READInput"> 
     <part element="tns:READ" name="parameters"/> 
    </message> 
    <message name="READOutput"> 
     <part element="tns:READResponse" name="parameters"/> 
    </message> 
    <portType name="PELVG02"> 
     <operation name="READ"> 
     <input message="tns:READInput"/> 
     <output message="tns:READOutput"/> 
     </operation> 
    </portType> 
    <binding name="PELVG02" type="tns:PELVG02"> 
     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> 
     <operation name="READ"> 
     <soap:operation soapAction=""/> 
     <input> 
      <soap:body use="literal"/> 
     </input> 
     <output> 
      <soap:body use="literal"/> 
     </output> 
     </operation> 
    </binding> 
    <service name="PELVG02"> 
     <port binding="tns:PELVG02" name="PELVG02"> 
     <documentation> 
      <wsi:Claim conformsTo="http://ws-i.org/profiles/basic/1.0"/> 
     </documentation> 
     <soap:address location="http://212.205.47.226:9003"/> 
     </port> 
    </service> 
    </definitions> 

Diese Datei, wenn sie in SoapUI eingegeben wird, funktioniert gut. Ich kann Daten senden und empfangen. Wenn ich versuche, das gleiche mit PHP zu tun, erhalte ich den Fehler "Konnte nicht mit dem Host verbinden".

Hier ein Beispiel PHP, die diesen Fehler erzeugt:

<?php 
//Create the client object 
try 
{ 
    $soapclient = new SoapClient('./PELVG02.wsdl'); 

    //Use the functions of the client, the params of the function are in 
    //the associative array 
    $pel = array('pel_user_code' => '9999999', 'pel_user_pass' => '9999999', 'pel_apost_code' => '999999999', 'pel_paral_name' => 'DOKIMI', 'pel_paral_address' => 'DOKIMI 13', 'pel_paral_area' => 'THESSALONIKI', 'pel_paral_tk' => '54646', 'pel_paral_thl_1' => '6973262626', 'pel_paral_thl_2' => '', 'pel_service' => '', 'pel_baros' => '12.50', 'pel_temaxia' => '', 'pel_paral_sxolia' => 'DOKIMI SXOLIA', 'pel_sur_1' => '', 'pel_sur_2' => '', 'pel_sur_3' => '', 'pel_ant_poso' => '', 'pel_ant_poso1' => '', 'pel_ant_poso2' => '', 'pel_ant_poso3' => '', 'pel_ant_poso4' => '', 'pel_ant_date1' => '', 'pel_ant_date2' => '', 'pel_ant_date3' => '', 'pel_ant_date4' => '', 'pel_asf_poso' => '', 'pel_ref_no' => ''); 

    $response = $soapclient->READ($pel); 

    var_dump($response); 
} 
catch(SoapFault $e) 
{ 
    var_dump($e); 
} 
?> 

soll ich eine einfache Antwort auf dem $ response Variable erhalten, die eine Mischung aus Zahlen und Buchstaben enthält.

Hier ist die Antwort, die ich in der soapUI Programm in XML erhalten eine um eine Probe zu haben:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <SOAP-ENV:Body> 
     <ns0:READResponse xmlns:ns0="/PELVG02"> 
     <ns0:st_flag>0</ns0:st_flag> 
     <ns0:st_title/> 
     <ns0:vg_code>NZ000034401GR</ns0:vg_code> 
     <ns0:return_vg/> 
     <ns0:epitagh_vg/> 
     </ns0:READResponse> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

Könnten Sie mir bitte helfen herauszufinden, warum ich nicht die PHP arbeiten kann? Was fehlt mir da?

Vielen Dank im Voraus.

Edit: können Sie die folgenden Daten in sourceui füttern Ergebnisse zu erhalten und sicherzustellen, dass die Datei PELVG02.wsdl ich oben genannten Arbeiten eingefügt haben:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pel="/PELVG02"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <pel:READ> 
     <pel:pel_user_code>9999999</pel:pel_user_code> 
     <pel:pel_user_pass>9999999</pel:pel_user_pass> 
     <pel:pel_apost_code>999999999</pel:pel_apost_code> 
     <pel:pel_paral_name>DOKIMI</pel:pel_paral_name> 
     <pel:pel_paral_address>DOKIMI 13</pel:pel_paral_address> 
     <pel:pel_paral_area>THESSALONIKI</pel:pel_paral_area> 
     <pel:pel_paral_tk>54646</pel:pel_paral_tk> 
     <pel:pel_paral_thl_1>6973206899</pel:pel_paral_thl_1> 
     <pel:pel_paral_thl_2></pel:pel_paral_thl_2> 
     <pel:pel_service></pel:pel_service> 
     <pel:pel_baros>12.50</pel:pel_baros> 
     <pel:pel_temaxia>1</pel:pel_temaxia> 
     <pel:pel_paral_sxolia>DOKIMI SXOLIA</pel:pel_paral_sxolia> 
     <pel:pel_sur_1></pel:pel_sur_1> 
     <pel:pel_sur_2></pel:pel_sur_2> 
     <pel:pel_sur_3></pel:pel_sur_3> 
     <pel:pel_ant_poso></pel:pel_ant_poso> 
     <pel:pel_ant_poso1></pel:pel_ant_poso1> 
     <pel:pel_ant_poso2></pel:pel_ant_poso2> 
     <pel:pel_ant_poso3></pel:pel_ant_poso3> 
     <pel:pel_ant_poso4></pel:pel_ant_poso4> 
     <pel:pel_ant_date1></pel:pel_ant_date1> 
     <pel:pel_ant_date2></pel:pel_ant_date2> 
     <pel:pel_ant_date3></pel:pel_ant_date3> 
     <pel:pel_ant_date4></pel:pel_ant_date4> 
     <pel:pel_asf_poso></pel:pel_asf_poso> 
     <pel:pel_ref_no></pel:pel_ref_no> 
     </pel:READ> 
    </soapenv:Body> 
</soapenv:Envelope> 

Edit: Ich installierte MAMP auf meinem PC und es scheint, dass Der PHP-Code funktioniert über MAMP oder XAMPP.

Dann traf es mich! Die Firewall ... ich erlaubte ausgehende Verbindungen zu tcp|out|d=9003|d=212.205.47.226

von csf.allow und die Soap-Funktion funktionierte. Ich denke, wir können dieses Problem lösen: D

Antwort

0

Ich habe MAMP auf meinem PC installiert und es scheint, dass der PHP-Code durch MAMP oder XAMPP funktioniert.

Dann traf es mich! Die Firewall ... ich erlaubte ausgehende Verbindungen zu tcp | out | d = 9003 | d = 212.205.47.226

von csf.allow und die Soap-Funktion funktionierte. Ich denke, wir können dieses Problem lösen: D

Verwandte Themen