Vor kurzem haben wir ein paar Projekte, in denen wir verbrauchen erhielt webservices SOAP für Daten. Die Wahrheit ist, dass es eine Weile war, da ich sie sah in meiner üblichen Arbeit. Vor ein paar Jahren waren sehr häufig für fast alles, was die Kommunikation mit externen Quellen würde bedeuten, jedoch den letzten Jahren war in Vergessenheit für einige einfache Dinge da recht einen Job mit einem einfachen HTTP-Anforderung und grundlegende XML kompliziert gefallen könnte gelöst werden . Genau dies ist seit jeher einer der Hauptkritikpunkte des Protokolls SOAP , hohe Bandbreiten-Verbrauch für eine einfache Anfrage.
Bis jetzt immer benutzt hatte nusoap zu SOAP Anrufe tätigen PHP , aber ich lief in ein Problem beim Zugriff auf einen Dienst ein wichtiges Mittel der internationalen Kommunikation. Der Aufruf nusoap nicht wieder Ergebnisse während von html Testsystem alles funktionierte einwandfrei.
Nachdem er viele Kurven und konnten keine Fehler (andere Anforderungen an den gleichen Dienst selbst, gearbeitet hat) Ich erkannte, dass PHP bereits eine Reihe von SOAP-Funktionen gebürtig, so dass keine Notwendigkeit nusoap. Die Frage wurde wäre es gut zu funktionieren, wie es war. Nach Zugabe der entsprechenden Erweiterung entsteht eine kleine Unstimmigkeit. Nusoap können nicht nativen und Sie dieselbe Installation von PHP. Anders ausgedrückt, wenn Sie die SOAP-Erweiterung zu aktivieren, beenden nusoap arbeiten und anfangen zu werfen Fehlermeldungen, weil viele der Funktionen, die Sie haben den gleichen Namen wie das native, die dann reservierten Namen zu verwenden wäre. Wenn Sie irgendeine Anwendung, die nusoap verwendet auf der gleichen Maschine haben müssen sie auch die Migration auf native Funktionen nutzen.
Heutige Beispiel ist eine einfache Ruf zu einem Service, der eine Liste von Nachrichten gibt.
Der Prozess ist sehr einfach, benötigen Sie die URL des Webservice, die Methode, die Sie aufrufen und die Parameter zu übergeben und, wie in jeder SOAP XML-Dienst zurückzukehren.
- ; //url del servicio $ Service = "http://dominio.com/noticias?wsdl" / / url des Dienstes
- 'idioma' ] = "es" ; $ Parameter ['language'] = "ist";
- 'usuario' ] = "manolo" ; $ Parameter ['user'] = "manolo";
- 'clave' ] = "tuclave" ; $client = new SoapClient ( $servicio , $parametros ) ; $ Parameter ['key'] = "tuclave"; $ client = new SoapClient ($ service, $-Parameter);
- -> getNoticias ( $parametros ) ; //llamamos al métdo que nos interesa con los parámetros $ Result = $ client -> getNoticias ($ Parameter) / / Aufruf der metdo, die uns interessiert die Parameter
Mit diesen einfachen Richtlinien haben wir in $ führen das Ergebnis XML-Service-Aufruf. Wie man mit XML arbeiten, ist ein bisschen umständlich, wandeln es in ein assoziatives Array, so dass wir es einfacher, die Daten zu verarbeiten zu machen, nutzen wir die Funktion obj2array ich unten angeben.
- $result ) ; $ Result = obj2array ($ result);
- [ 'resultado' ] [ 'noticias' ] ; $ News = $ result ['result'] ['news'];
- / / Prozess das Ergebnis wie bei jeder anderen Array
- $i = 0 ; $i < $n ; $i ++ ) { for ($ i = 0, $ i <$ n, $ i + +) {
- [ $i ] ; $ News = $ news [$ i];
- [ 'id' ] ; $ Id = $ news ['id'];
- / / Hier gehen Sie den Rest Ihres Codes, verarbeiten Sie die empfangenen Daten
- }
- $obj ) { obj2array function ($ obj) {
- $obj as $key => $val ) { foreach ($ obj as $ key => $ val) {
- true ) { Schalter (true) {
- $key ] = obj2array ( $val ) ; $ Out [$ key] = obj2array ($ val);
- break;
- $key ] = obj2array ( $val ) ; $ Out [$ key] = obj2array ($ val);
- break;
- Standard:
- $key ] = $val ; $ Out [$ key] = $ val;
- }
- }
- ; return $ out;
- }
In der zweiten Zeile halten wir die Array-Elemente, die wir bearbeiten wollen. Wenn Sie nicht wissen, was Ihre Webservice kehrt ein var_dump tun ($ result) und sehen Sie alle Ergebnisse. In unserem Fall, da ist eine Folge von Nachrichten, sind wir mit dem Artikel, dass die Nachricht hat gelassen.
Wie Sie vielleicht bemerkt haben, habe ich nicht besorgt Fehlerbehandlung beim Aufruf des Webservice. Dass ich als Übung, dich zu verlassen, es ist August und ich will nicht
. In Handbuch von PHP ist, all die Informationen.
Und dass alle Leute ist, heute war ein einfaches Beispiel, aber sehr nützlich, wenn Sie SOAP verwenden müssen.










66 Benutzer haben auf "Der Konsum von SOAP Webservices mit PHP", kommentierte
Führen Sie den Kommentaren zu diesem Eintrag TrackbackHOLAP wie gut das Tutorial. Ich habe ein Problem mit dem php SOAP. Das Problem ist:
Beim Aufruf einer Web-Service-Aufruf ohne Parameter funktioniert es perfekt, aber nennen es eine WS mit Parametern bekomme ich die folgende Fehlermeldung:
Fatal error: Uncaught SoapFault Ausnahme: [soap: Server] System.Web.Services.Protocols.SoapException: Server konnte die Anforderung nicht verarbeiten. -> System.Data.SqlClient.SqlException: Prozedur oder Funktion 'GetBibleWordsByChapterAndVerse' erwartet Parameter '@ Buchtitel' wurde que nicht mitgeliefert. bei WebServicex.BibleWebservice.GetBibleWordsByChapterAndVerse (String Buchtitel, Kapitel Int32, Int32 Verse) - Ende des Ausnahme-Stack-Trace - in / home / cbarcos / htdocs / test / soapCliente.php: 35
Dies ist mein Code:
$ Client = new SoapClient ("http://www.webservicex.net/BibleWebservice.asmx?wsdl", array ('trace' => 1));
$ Params = array (
SoapParam neu ("Römer", "Buchtitel")
neue SoapParam (1, "Kapitel"),
neue SoapParam (1, "Verse")
);
$ Data = $ client-> __ soapCall ('GetBibleWordsByChapterAndVerse', $ params);
Ich hoffe ihr könnt mir helfen, danke!
Hallo Fernando,
Versuchen Sie diesen Code hat es gut funktioniert:
"Römer"
"Kapitel" => 1,
"Verse" => 1
);
$ Client = new SoapClient ("http://www.webservicex.net/BibleWebservice.asmx?wsdl", $ Paar);
$ Result = $ client-> GetBibleWordsByChapterAndVerse ($ Parameter);
var_dump ($ result);
?>
Grüße,
OSUs
Ich habe einen Web Service zu konsumieren und dies erfordert Zertifikat so kann verbraucht werden, wie ich, um das Zertifikat zu senden tun? Danke ..
Hallo,
Sie wissen nicht, wo das Zertifikat viel tut. Bitte erläutern Sie genauer, was das Problem ist, Sie tun wollen, was haben Anforderungen ...
Guten Tag sehr interessante Tutorial, ich würde gerne wissen, wie wir vorgehen, wenn ich einen Web-Service, die ich in Eclipse entwickelt verbrauchen, bitte keine Ideen, die Sie mir, ist willkommen können
Hallo Melvil,
Könnten Sie das näher erläutern?
Im Prinzip ws hängen Sie es auf Ihrem Webserver und konsumieren es ohne Probleme.
hallo, guten Tag, ich frage mich, wenn jemand mir helfen kann. Ich möchte einen Dienst in wb hacho. Net, die eine Datenmenge von php kehrt zu konsumieren. Ich zukunftsgerichtete Informationen und wirklich sehr wenig, was ich finden konnte. Dank
hallo, guten Tag. Ich würde gerne wissen, welche sind die Erweiterungen hinzugefügt werden ("wie du sagst da oben"), andere, wie Sie als Code, den Sie platzieren es nicht funktioniert, zumindest habe ich nicht tun sollte eingestellt. Ich sehe nach Ihrem Beispiel müssen Sie brechen die Knochen wsdl php oder PHP IDE verbrauchen bringt nicht die erforderlichen Optionen, um die poxis oder Klasse, um eine Web-Service konsumieren zu generieren.? und eine andere Frage, wie man einen Web-Service in PHP zu erstellen? Sie erstellen können? in den Beispielen die ich gesehen habe nicht finden, den Server, der wsdl hostet.
Bitte senden Sie eine Kopie an meine E-Mail-ich schätze es!
Att johnx
http://j2ee-vs-net.blogspot.com
jjjpropio@gmail.com
Vergleichende Analysen und PLATFORMS J2EE. ANGEWANDTE NET Web-Entwicklung Dienstleistungen
Gut jjjpropio,
Zu haben die SOAP-Funktionen müssen mit PHP-enable-soap kompilieren. Es gibt wohl einige Paket bereits kompilierte Pakete für Ihr System. In meinem Fall gibt es eine php-soap installieren Sie die Erweiterung.
Wenn Ihr Server ist Windows nur aktivieren die Erweiterung in der php.ini.
Sicher, man kann eine SOAP-Service.
http://es.php.net/manual/es/function.soap-soapserver-construct.php
Grüße,
OSUs
Hallo, ich bin gerade dabei WS Kunden in PHP 5, als der Verbrauch WS Tatsachen oder unter Verwendung nusoap php ich kein Problem haben, aber wenn ich auf WS. Net verbrauchen versuchen kann ich es tun, solange das Verfahren möchte ich verbrauchen erhält keine Parameter. wenn die Methode erhält einen Parameter (s) Ich habe folgendes Problem dann der Parameter, der ihn durch die php-Client gesendet, um WS nie ankommt oder sowas, ich meine, wenn der WS. net erhält einen String an den typisierten Namen grüßen (HOLA lunaris), dann schickt mir hallo Ergebnis ist, als ob einige porblema im Parameter von PHP gesendet, so mit mir, wenn es eine ganze Multiplikation zweier Zahlen ist dann immer einen Wert von 0. Die andere Frage, die ich haben über WS und PHP-Clients ist: Gibt es irgendeine Art von Unverträglichkeit, wenn die WS erzeugt das Schema (Schema) in einer WSDL-URL baute ich abgesehen von WS in JEE 5 mit NetBeans 6.5 und erzeugt separaten Schema ... und wenn ich zu konsumieren versuchen sie erwirtschaftet Fehler in php ..... Nun, vielleicht haben Sie einige PHP-Client beispielsweise, die einen Dienst. Net, die einige Parameter hat zugreift, wenn ich verbringen wäre gut, und wenn die WS. Net Internet das wäre viel besser für problarlo
Bitte senden Sie eine Kopie an meine E-Mail-ich schätze es!
Mein msn ist jjjpropiox@hotmail.com , mag ich, dass Sie mir zusätzlich zu Ihrer msn! zu sprechen .. viel besser über das Thema
Dank
Att johnx
http://j2ee-vs-net.blogspot.com
jjjpropio@gmail.com
Vergleichende Analysen und PLATFORMS J2EE. ANGEWANDTE NET Web-Entwicklung Dienstleistungen
Hallo, ich habe einen Webservice in Java und PHP Client integriert, arbeite ich sehr gut, aber aus einer Zeit, hier habe ich ein Problem, dass der Kunde nicht in der Lage ist, um den Dienst zu verbinden, und dies geschieht nur, um mich ein paar Mal, aber jeder Zeit ist mehr als oft nicht zu tun und wirft Fehler wie folgt:
Fatal error: Uncaught SoapFault Ausnahme: [HTTP] konnte keine Verbindung zum Host in D: \ xampp \ htdocs \ ProyFrances \ classes \ clienteService_class.php: 136 Stack trace: # 0 [internal function]: SoapClient-> __ doRequest ('__call ( 'datosEjercicio', Array) # 2 D: \ xampp \ htdocs \ ProyFrances \ classes \ clienteService_class.php (136): SoapClient-> datosEjercicio (Array) # 3 D: \ xampp \ htdocs \ ProyFrances \ encejercicio.php (13) : ClienteService-> datosEjercicio ('1 ') # 4 {main} in D geworfen: \ xampp \ htdocs \ ProyFrances \ classes \ clienteService_class.php on line 136
Ich habe alles überprüft und es kann nicht sein, ist der Spass an der Sache, dass, wenn ich den Computer ausschalten und zünde es manchmal läuft reibungslos.
Ich schätze die Hilfe
Hallo Leonardo,
Ich denke, die Botschaft ist völlig unverbindlich Ihres error:
Nach der Nachricht und Ihre Erklärung, manchmal verliert man die Verbindung zum Server.
OSUs
Dass solche OSUs, danke für den Input, ich mit einer Abfrage stören wollen, die Frage mehr auf die Reaktionszeit ist, ich meine, ich habe eine Webservice-Client in PHP mit nusoap entwickelt montiert auf einem Server mit einer Architektur etwas spärlich, Pentium III 256 RAM 1 Ghz Prozessor, recht klein, aber in seiner Zeit war es ein maquinota, Zweifel ist gut, weil Sie in Ihrem Beitrag, dass die Seife verbraucht Bandbreite und Client-Webservice erwähnen Ich erwähne dies dauert etwa 15 Sekunden, um verbrauchen einen Dienst von einem anderen gut in php Webservice mit nusoap entwickelt wurde, ist die Frage, die Sonde und montieren Sie den Client über eine andere robustere Server, ohne etwas zu ändern, und es ist die Antwort fast sofort, empfangen und wollte wissen, ob Sie einen kennen Parameter, um zu den Einstellungen von Apache oder PHP, die dazu dienen, um die Ansprechzeit zu verringern wird modifiziert werden. Agradecere Sie Anregungen.
Grüße.
Wie wäre es, ich habe festgestellt, dass das Problem der Parametereinstellungen MaxKeepAliveRequests von Apache (in meinem Fall in apache2.conf bin mit ubuntu 7.04 feisty-Kitz) verwandt ist, hatte der Parameter erhöht, um eine größere Anzahl von Verbindungen ermöglichen und dies verursacht, dass der Konsum von Webservices zu langsam (15 sec pro Einsatz) wurde. Senken den Wert und jetzt wird in 2 Sekunden, klar, das Problem ist, dass jetzt akzeptieren eine kleinere Anzahl von Verbindungen, sondern durch die Zeit, die ich günstiger ist, um die Ansprechzeit zu verringern.
Wir werden sehen.
Hallo, ich habe eine Web-Service-Client in Java und PHP haben, arbeitet ich relativ gut, denn wenn es gibt die Web-Service ist ein Array von mehreren Datensätzen das Ergebnis bekomme ich ein Array mit zwei Platten, es sei denn es gibt tatsächlich Java Web Service. Du weißt, es kann durch.
Dank
Hallo, ich habe eine Web-Service-Client in Java und PHP haben, arbeitet ich relativ gut, denn wenn es gibt die Web-Service ist ein Array von mehreren Datensätzen das Ergebnis bekomme ich ein Array mit zwei Platten, es sei denn es gibt tatsächlich Java Web Service. Du weißt, es kann durch.
Dank
Hallo guten Morgen, ich brauche Hilfe, kann jemand mit einem Webservice helfen, Informationen zu einem scharfen abfragen
l Server http://200.26.159.122/webservicessystem/webservices.asmx?WSDL Und das Skript Ich verwende ist die folgende, wenn ich mit etwas einfacher helfen würde es begrüßen, eine Menge:
clienteWeb _ws = new ();
}
getMembershipValue function () {
}
checkMembership function ($ Ausweis) {
$ Personalausweis = ($ sCedula);
$ Response = $ this-> _ws-> request ('cargaDatosAfiliado', $ Ausweis);
foreach ($ response wie $ resActual) {
if (is_array ($ resActual)) {
return true;
Else {}
return false;
}
}
}
}
?>
Wählen
Cedula:
$ AElemento)
echo "" [name "]." "$ resActual.";
?>
Wenn Sie möchten, können Sie mich per E-Mail kontaktieren, und ich kann es nicht hier vollständige Code juantorrado@hotmail.com
Grüße, muss ich an einen Web Service zu verbinden, und ich muss als Parameter senden ein Knoten in einem XML-Datei, mit nusoap und Xmlnode NULL versuchen antwortete mir, und ich bin mit php5 Seife Umgang wie ...
Beispiel =
$ File = "abcdefgh.xml";
$ Content = simplexml_load_file ($ file);
zu testen:
print_r ($ content);
$ Parameters = array ("abcdefg" => $ content);
und rufen Sie die Funktion und gibt mir:
Fehlgeschlagen. Reason: Null XmlNode festgestellt
Wenn ich helfen kann, ich danke Ihnen, wenn Sie mehr Informationen benötigen, lassen Sie mich wissen ...
DANKE ...
Hallo OSUs,
Danke für den Beitrag, ist sehr lehrreich. SIE wollte fragen ...
Ich habe mit ws verbinden, dass die Rendite einer Klasse.
In PHP gibt es keine Möglichkeit der Generierung von Klassen oder so ähnlich (Proxy) zu Response-Verfahren sammeln genannt?
Oder die einzige Möglichkeit ist, eine kleine Hand zu analysieren?
ich danke Ihnen sehr im Voraus.
Mit freundlichen Grüßen,
Marder
Hallo Marta,
Sie können eine Zuordnung zwischen Server-Klassen und Sie glauben, in Ihrem php.
Schauen Sie auf der Website des Herstellers:
http://es2.php.net/manual/en/soapclient.soapclient.php
bezüglich classMap
OSUs
Hallo! Vielen Dank für Ihre Antwort.
Dann sehe ich ... nicht automatisch generiert. Ich denke, dass Java und. Net viel Vorteil nimmt, um PHP, zumindest in Bezug auf den Konsum von Web-Services ...
Ich denke, es lohnt sich der Einsatz von PHP für diesen Zweck.
Mit freundlichen Grüßen,
Marder
Hallo, ich bin in c # verbrauchen ws arbeiten und wollte wissen, ob es gleich ist, wenn die gleiche Funktion registrieren Auslastung für das ist, was ich Daten einfügen oder sollte ich eine andere Funktion außer registrieren sucht:
$ Server-> register ('insertarCliente'
array ('Nitt' => 'xsd: string'),
array ('Rückkehr' => 'xsd: boolean'),
$ Ns);
dies ist meine Funktion, meine Suche hat
SearchClient function ($ Nitt)
{
$ Rechts = false;
$ Q = "SELECT * FROM Kunden WHERE nit LIKE '%". $ Nitt "% '".
$ M = new MySQL (_HOST, _login, _passdb, _dbname);
if ($ m-> query ($ q))
{
Gute $ = true;
/ / $ Userid = m-> getID ();
}
return $ rechts;
}
insertarCliente function ($ FullName, $ nit, $ address, $ telefon, $ telefon, $ email, $ city)
{
$ Rechts = false;
$ Q = "INSERT INTO Kunden (Name, nit, Adresse, Telefon, Handy, E-Mail, Ort) Werte
$ M = new MySQL (_HOST, _login, _passdb, _dbname);
if ($ m-> query ($ q))
{
Gute $ = true;
/ / $ Userid = m-> getID ();
}
return $ rechts;
}
leichter und legen einen Datensatz in meine DB ohne Wiederholung.
ing student ersten Semester System
Hallo David,
Ich verstehe nicht Ihre 4 Kommentare, nach der Lektüre all dieser Klarlack ist, dass sie nichts mit Webservices zu tun haben.
Können Sie erklären Ihr Problem im Detail?
Hallo Freunde Ich versuche, eine Web-Services-Client, der mit anderen Verkehrsministerium (kommuniziert erstellen bin https://manifiesto.mintransporte.gov.co/mucregistro/RegistraManifiesto?WSDL ) und ich konnte nicht einmal etwas tun in PHP5 und senden kommuniziert leeren Daten, aber mit einer Klasse durch die datearlas wsdl2php erstellt und wirft mir die Fehlermeldung: "Nein Deserialisierungsprogramm für ArrayOfmucRegistra_RemesaType2User gefunden '
Wünschte, ich könnte helfen.
PDT: Heintentado ein Java-Desktop-Anwendung, aber es wirft die Fehlermeldung: "[SOAPException: faultCode = SOAP-ENV: IOException; msg = Nicht unterstützte Protokoll 'https'; TargetException = HTTPClient.ProtocolNotSuppException: Nicht unterstützte Protokoll 'https'] '
Vielen Dank im Voraus
Hallo Javier,
Können Sie sagen, Testdaten in der Methode, die Sie geben, um seine Leistung zu testen?
$ Pusuario = (real) 96191554;
$ Pempresa = (real) 8600068755;
$ SClient = new SoapClient ("RegistraManifiesto1.wsdl", array ('uri' => 'http://mucRegistra/registraManifiesto.wsdl'
'SOAPAction' => ")
Danke für deine Antwort OSUs und hoffentlich kann ich arbeiten, das wirst du zurückkehren so etwas wie:
StdClass Object Object ([peregremesaOut] => stdClass Object ([array] => Array ([0] => stdClass Object ([remnumero] => [remnromanifiesto] => [state] =>))) [peregmanifiestoOut] => stdClass Object ([array] => Array ([0] => stdClass Object ([mannumero] => [mannumeroEmpresa] => [tarifaflete] => [state] =>))) [peregvehiculoOut] => stdClass Object ([ Array] => Array ([0] => stdClass Object ([vehplaca] => [state] =>))) [peregconductorOut] => [peregterceroOut] => stdClass Object ([array] => Array ([0] => stdClass Object ([pertipid] => [Periden] => [state] =>))) [pmensajeOut] => 0)
Aber um die Daten zu füllen nicht erlaubt Senden kommt der Fehler: "Mapping nicht gefunden ...." dezerializer oder nicht gefunden ... "dank
Entschuldigung für solche Informationen
Hallo Javierwicca,
Sie durch ein Beispiel, das funktioniert hat:
$ Client = new SoapClient ("https://manifiesto.mintransporte.gov.co/mucregistro/RegistraManifiesto?wsdl", Array ());
$ Res = $ client-> wsmani ($ pusuario, $ pempresa, $ pfirma, $ pfirmado);
var_dump ($ res);
Ich kehrte:
object (stdClass) # 2 (6) {
["PeregremesaOut"] =>
NULL
["PeregmanifiestoOut"] =>
NULL
["PeregvehiculoOut"] =>
NULL
["PeregconductorOut"] =>
NULL
["PeregterceroOut"] =>
NULL
["PmensajeOut"] =>
string (2190) "Die Unterzeichnung, dass die übermittelten Informationen ist {T = FLUGSICHERUNGSSYSTEMEN NAME = ACOSTA BARRERA, 63 STREET SOUTH STREET = N WHITE BUS SA, L = Bogota, GIVENNAME = DANILO HERNANDO, E = SISTEMAS@BUSESBLANCOS.COM.CO, ist CN = DANILO HERNANDO ACOSTA BARRERA, C = CO} fimado Text Fehler ORA-06531: Verweis auf nicht initialisierte Sammlung "
}
Möglicherweise müssen Sie in Ihrer php.ini cURL und OpenSSL Erweiterungen drehen seit ws ist ssl url.
Hoffe, dass das Problem gelöst
Danke für die Antwort:
weil bis ich dort immer logarado die poblem ist, wenn Dateo PregRemesa2 Objekte (Enthält ein Array der Klasse mucRegistra_RemesaType2User) PregManifiesto (enthält ein Array mucRegistra_ManifiestoType2User Klasse) und so weiter in die Daten pregVehiculo, pregConductor, pregTercero Nutzungsbedingungen ein Werkzeug wie WSDL2PHP bekannt und sie erzeugt automatisch Kategorien php aber ich fülle sie und versuchen, um ihm wirft den Fehler "nicht für ArrayOfmucRegistra_RemesaType2User deserialer gefunden"
Schade, dass Sie sowohl agradesceria OSUs Mühe, wenn ihr mir helfen könntet dies ist einer der Klasse, die mir WSDL2PHP erzeugt:
mucRegistra_RegRemesa2 Klasse {
public $ array; / / ArrayOfmucRegistra_RemesaType2User
}
mucRegistra_RemesaType2User Klasse {
public $ nitempresa / / Nachkommastelle
public $ remnumero / / Nachkommastelle
public $ remunidaMedida / / Nachkommastelle
public $ remcantidad / / Nachkommastelle
public $ rempeso / / Nachkommastelle
public $ remunidaEmpaq / / Nachkommastelle
public $ remnaturaleza / / Nachkommastelle
public $ remcodproducto; / / string
public $ remdescrProdu; / / string
public $ remremitente; / / string
public $ remdestinatario; / / string
public $ remciudadDesti / / Nachkommastelle
public $ remnromanifiesto; / / string
public $ remtipidremitente; / / string
public $ remidenremitente / / Nachkommastelle
public $ remnroremempresa; / / string
public $ remestado; / / string
public $ remtipiddestinatario; / / string
public $ remidendestinatario / / Nachkommastelle
public $ rempoliza; / / string
public $ remaseguradora / / Nachkommastelle
public $ remvencimiento; / / string
public $ remduenopoliza; / / string
public $ remciudadOrig / / Nachkommastelle
public $ remvalremesa / / Nachkommastelle
public $ remvalproducto / / Nachkommastelle
Öffentlichkeit $ status; / / string
}
Und das Problem scheint die Zuordnung, aber WSDL2PHP denke, mit den anderen Klassen:
private static $ classmap = array (
'MucRegistra_RegRemesa2' => 'mucRegistra_RegRemesa2'
'MucRegistra_RemesaType2User' => 'mucRegistra_RemesaType2User'
'MucRegistra_RegManifiesto2' => 'mucRegistra_RegManifiesto2'
'MucRegistra_ManifiestoType2User' => 'mucRegistra_ManifiestoType2User'
'MucRegistra_RegVehiculo2' => 'mucRegistra_RegVehiculo2'
'MucRegistra_VehiculoType2User' => 'mucRegistra_VehiculoType2User'
'MucRegistra_RegConductor' => 'mucRegistra_RegConductor'
'MucRegistra_ConductorTypeUser' => 'mucRegistra_ConductorTypeUser'
'MucRegistra_RegTercero' => 'mucRegistra_RegTercero', 'mucRegistra_TerceroTypeUser' => 'mucRegistra_TerceroTypeUser'
'MucRegistra_RegistraManifiestoImpl_wsmani_Out' => 'mucRegistra_RegistraManifiestoImpl_wsmani_Out'
'MucRegistra_RegEstRemesa' => 'mucRegistra_RegEstRemesa'
'MucRegistra_EstRemesaTypeUser' => 'mucRegistra_EstRemesaTypeUser'
'MucRegistra_RegEstManifiesto' => 'mucRegistra_RegEstManifiesto'
'MucRegistra_EstManifiestoTypeUser' => 'mucRegistra_EstManifiestoTypeUser'
'MucRegistra_RegEstVehiculo' => 'mucRegistra_RegEstVehiculo'
'MucRegistra_EstVehiculoTypeUser' => 'mucRegistra_EstVehiculoTypeUser'
'MucRegistra_RegEstConductor' => 'mucRegistra_RegEstConductor'
'MucRegistra_EstConductorTypeUser' => 'mucRegistra_EstConductorTypeUser'
'MucRegistra_RegEstTercero' => 'mucRegistra_RegEstTercero'
'MucRegistra_EstTerceroTypeUser' => 'mucRegistra_EstTerceroTypeUser'
);
public function registraManifiesto ($ wsdl = "https://manifiesto.mintransporte.gov.co/mucregistro/RegistraManifiesto?WSDL", $ options = array ()) {
foreach (self :: $ classmap as $ key => $ value) {
if (! isset ($ options ['classmap'] [$ key])) {
$ Options ['classmap'] [$ key] = $ value;
}
}
parent :: __ construct ($ wsdl, $ options);
wieder ich für den Überschuss an info entschuldigen.
Dank Totals
Old ... Ich brauche einen Rat, den Sie mir anbieten können
Was ist dein Problem Alexander?
Hallo an alle, kann leider jemand zeigen, dass sie 'result' und 'news'? Sind, in dieser Zeile??
$ News = $ result ['result'] ['news'];
Dies ist das Ergebnis meiner Webservice, nun, was ich brauche, um jeden Wert abzurufen, z. B.> 0, muss ich die 0 abzurufen.
Wie kann ich? Bitte helfen Sie! Danke ...
010012094224739MATE-1Blue-603330-732 483 732 483 010 012 094 224 0100 120942241057MATE
Leider ist dies das Ergebnis meiner Web-Service ...
1Blue-603330 010 012 094 224>
@ Rachel,
Ich verstehe nicht das Format der Webservice Antwort.
In dem Beispiel wird ein Array Reaktion und Zugang, wie Sie geben, aber es ist nur im Fall von meinem Beispiel.
In Ihrem Fall sollten Sie beginnen, zu tun:
var_dump ($ result)
nach Durchführung des Verfahrens, so sehen Sie die Antwort und Sie können entscheiden, wie man solche Daten zu verarbeiten.
Ich meine, ich weiß, dass dabei var_dump sehen das Ergebnis, aber was ich will, ist, diese Werte habe ich gezeigt, abzurufen, sind sie verschiedenen Bereichen, und ich brauche zu erholen in einer Tabelle speichern ... wenn nicht die xml Webservice abrufen oder was ich tun kann, um differenzierende Werte und sie in mein Board einfügen ... ich tun? man bedenkt, dass nicht viel von php ...
@ Rachel,
Um zu erfahren, wie Sie die Daten, die Sie wissen müssen, wie Sie wieder zu sammeln, oder sehen Sie sich die Antwort ($ result) oder analysieren die Unterschrift des Webservice (WSDL), aber man muss wissen, wie Sie die Daten zu erhalten, das ist, warum ich das gesagt habe mirases die var_dump.
Var_dump Reaktion ist wie folgt:
1Blue-603330-0100120942241057MATE 010012094224739MATE-732 483 732 483 010 012 094 224 ...
hier sind 3 Register, aber wenn die wwebservice mich wieder mehr als 1000 Datensätze, zum Beispiel die erste ist in einer Sequenz-Tag ist BLUE-603330 ein Code und so jedes Ding, aber die 1000 Sätze kehrte zu mir in einer einzigen Kette die var_dump tun, und ich habe keine Ahnung, wie man oder rufen Sie die xml und behandeln sie so oder identifizieren jedes Feld, um den Wert in meiner Tabelle speichern ... wenn du porfa Bote, der zu viel Aufwand facilites mich wäre? ? dies ist mein ditaraquel82@hotmail.com
Wenn das, was Sie zurückgegeben wird, wie Sie geben, eine einzige Kette haben, einen Weg zu unterteilen, wie Sie brauchen, kann ich nicht an nichts denken.
Ein gutes Beispiel, danke.
Hallo Freund,
Ich will einfach nur mit dem Webdienst Verkehrs-Ankündigung wurde von Kolumbien gemacht zu kommunizieren, ist die URL
https://manifiesto.mintransporte.gov.co/mucregistro/RegistraManifiesto
Um zu kommunizieren nur dies zu tun:
$ Client = new SoapClient ('https://manifiesto.mintransporte.gov.co/mucregistro/RegistraManifiesto');
var_dump ($ client-> __ getFunctions ());
Aber ich sage, dass man nicht geladen werden die Informationen aus der URL.
Was kann ich tun?
Hallo Edgar,
Das Problem ist, dass die URL, die Sie geben nicht funktioniert, nicht mehr. Der Code ist gut.
OSUs Hallo, ich habe Tage in com WS Response-Verfahren gefangen, Ihr Beispiel war die beste, die ich im Internet gesehen habe. Aber, um es in meine Verbindung verwende ich bekomme die Fehlermeldung Undefined offset:
die var_dump gibt mir dies:
Object (stdClass) [2]
public 'generarCFDIPruebaResult' =>
object (stdClass) [3]
öffentlichen 'string' =>
Array
0 => string 'True' (length = 4)
1 => string '(length = 0)
2 => string 'Z' (length = 1)
3 => string '283 '(length = 3)
4 => string '2011-07-07T00: 49:33 '(length = 19)
5 => string "Dieses Dokument ist eine gedruckte Darstellung eines CFDI '(length = 56)
6 => string '217 '(length = 3)
7 => string 'string '1 .0' (length = 3)
9 => string 'EC5D4158-7E57-7E57-7E57-48AE80DC8F63' (length = 36)
10 => string '07 / 07/2011 00.49.33 '(length = 24)
11 => string (Länge = 172)
12 => string '00001000000103082037 '(length = 20)
13 => string (Länge = 172)
14 => string
und dieses serialisieren:
Dokument ist eine gedruckte Darstellung eines 00.49.33
Um dorthin zu gelangen, bringt ein 7 ein XML, dass ich bei jeder Anfrage zu halten.
Ich hoffe ihr könnt mir zu führen.
Dank
Hallo Andres,
Es scheint, dass die WS Sie gibt ein Objekt direkt, so dass Sie verwenden können,
Testbeispiel
echo $ object-> generarCFDIPruebaResult-> string [0];
Hallo OSUs,
Unglaublich!, Nach dem Spinnen sowohl endlich geklappt.
Danke!
hallo Freunde konnten mir helfen! Ich brauche, um einen Web-Service mit Symfony 1.4.8 verbrauchen aber ich folgte Ihre Anregungen und es funktioniert nicht.
Nun, wenn ich kann nicht die Parameter.
Hier habe ich mein Posting Code
$ Client = new SoapClient ("http://200.110.68.244/Academico/VerificaUsuarioWebPort?WSDL", array ());
$ Res = $ client-> getVerificaUsuarioWeb ('oobando', '1234567 ');
var_dump ($ res);
Hallo Diana,
Im ws Sie geben nur zwei Methoden definiert sind:
und weder ist der Beweis getVerificaUsuarioWeb
OSUs Dank für die Beantwortung, dann ist das Problem?
aber diese Methode wird ebenfalls erstellt .....
Ich sehe nun APLIQ diesen Code wo niemand Methodenaufruf
$ Client = new
var_dump ($ client-> __ getFunctions ());
und zeigt mir, was SGTE Seite:
array (2) {[0] => string (71) "obtenerResultadoResponse obtenerResultado (obtenerResultado $ Parameter)" [1] => string (65) "actualizaClaveResponse actualizaClave (actualizaClave $ Parameter)"}
Freund OSUs .... ich danke Ihnen sehr für Ihren Kommentar mir sehr geholfen
Check jetzt gut und man hatte viel Grund
der Aufruf der Methode zu q q hatte, war obtenerResultado
hier gepostet sei q Code jetzt, ob es funktioniert
$ Parameters = array (
'User', 'user',
'Passw', 'key'
);
$ Client = new SoapClient ("http://200.110.68.244/Academico/VerificaUsuarioWebPort?WSDL", array ());
$ Res = $ client-> obtenerResultado ($ Parameter);
var_dump ($ res);
Freund OSUs .... ich danke Ihnen sehr für Ihren Kommentar mir sehr geholfen
Check jetzt gut und man hatte viel Grund
der Aufruf der Methode zu q q hatte, war obtenerResultado
hier gepostet sei q Code jetzt, ob es funktioniert
$ Parameters = array (
'User', 'user',
'Passw', 'key'
);
$ Client = new SoapClient ("http://200.110.68.244/Academico/VerificaUsuarioWebPort?WSDL", array ());
$ Res = $ client-> obtenerResultado ($ Parameter);
var_dump ($ res);
hallo OSUs mir helfen könnte, das Problem zu lösen habe ich q .... ich deine Anweisungen befolgt und beim Testen meiner Webservice Verbrauch in php bekomme ich es auf dem Bildschirm sgte
object (stdClass) # 47 (1) {["Rückkehr"] => bool (false)}
würde es wirklich schätzen, wenn Sie mit mir zusammenarbeiten könnten
@ DIBU,
Es scheint richtig funktioniert?. Ich kehrte Falsch
q einzigen Linie, die devuelvla me .... nicht wie ich q kehrt tun TRUE oder FALSE
weitere kleine Frage .... Array-Parameter sollte ich anrufen q mit dem gleichen Namen haben in den Methoden meines Webservice erstellt wurde oder ich kann sie von einem anderen Namen zu nennen?
Hallo und vielen Dank für die Daten, die wir wir ohne Menschen wie Sie wäre nicht helfen, nochmals vielen Dank.
Hallo,
Ich habe die Frage, wo das Verfahren, (dass ein Teil genannt wird) Antwort.
Zum Beispiel meine main-Methode und das Verfahren GetOC bringt mir die Antworten ist GetOCResult
Im Beispiel rufen Sie die Methode main
@ Carlos,
In dem Beispiel,
$ Result = $ client-> getNoticias ($ Parameter);
$ Ergebnis enthält die Antwort auf das Verfahren. Keine Methode GetOCResult als solche.
Einen var_dump ($ result) und sehen, was dass Ihre Methode gibt.
OSUs Hallo, nachdem ich all die Kommentare, die ich zu sehen, dass dieses Thema nicht geschlossen wurde und dass Sie sich die Mühe zu antworten, im Voraus vielen Dank.
Ich möchte mit Ihnen auf der folgenden Problem,
$ Client = new SoapClient ($ service);
$ Result = $ client-> getArticle ("JTA16P1");
var_dump ($ result);
Ich habe zu einer NULL und kann nicht falsch sein, wenn die Methode gibt einen String zurück.
Ich bestätige, dass das Verfahren in der WS vorhanden ist, aber ich verstehe, dass ich tun, um richtig zu konsumieren den Web-Service benötigen.
Grüße.
Es ist das Ergebnis des Webdienstes
GetFunctions __ value ()
array (1) {[0] => string (40) "Leere getArticle ($ strIdArticulo anyType)"}
GetArticle value ()
NULL
Grüße
Nach Stunden des Suchens und fand mein Problem und müssen nur die folgenden ini_set tun ("soap.wsdl_cache_enabled", 0);
Grüße ...
Ich habe ein Problem ich habe eine WSDL-Header enthält und in dieser ist die Anmeldeinformationen für den sw verbrauchen .. Benutzername und Passwort ... meine Frage ist, wie diese Werte seteo von php ..
Vielen Dank im Voraus ...
Selbstverständlich sind auch andere Methoden haben ihre eigenen Parameter .. wie Login und Passwort ... das im Inneren des Körpers sind ..
Lassen Sie eine Antwort