| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

09-09-2010, 20:01
|
|
Koda
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 18
|
|
SOAP mit XML Datei. Wie aufbauen
Hi
Ich würde gerne Informationen die ich von einer Seite zur verfügung gestellt bekomme abrufen. Ich habe jetzt schon einige Seiten durch, finde aber immer nur Tutorials und Codeschnippsel wo der Code anders aufgebaut ist.
Ich habe folgende Hilfe bekommen:
Zitat:
Request:
POST /MyWebServices/ACService.asmx HTTP/1.1
Host: the.host.tld
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://the.otherhost.tld/MyServices/CheckMyData"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<CheckAccount xmlns="http://the.otherhost.tld/MyServices/">
<userNick>string</userNick>
<userPassword>string</userPassword>
</CheckAccount>
</soap:Body>
</soap:Envelope>
Response:
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<CheckAccountResponse xmlns="http://the.otherhost.tld/MyServices/">
<CheckAccountResult>
..........
<EMail>string</EMail>
</CheckAccountResult>
</CheckAccountResponse>
</soap:Body>
</soap:Envelope>
|
Vielleicht hat hier jemand ein kleinen anhaltpunkt wie ich dies aufbauen muss.
Ein kleiner Codeschnippsel wie ich an die Antwort vom Webservice kommen würde mir schon reichen um nachher weiter zu fahren.
Danke schonmal für eure Tipps
Gruss
Koda
|

09-09-2010, 20:54
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Ort: Dresden
Beiträge: 5.463
|
|
Hallo,
normalerweise musst du dir darüber keine Gedanken machen, wenn du gleich die SOAP-Unterstützung von PHP nimmst.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

09-09-2010, 22:35
|
|
Koda
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 18
|
|
Hi
Danke für deine Antwort. Diese habe ich auch bereits durchgelesen und habe auch gesehen das diese einkompiliert ist. Daher wäre dies kein Problem.
Ich denke, den XML Teil kann ich in eine XML packen. Aber mit dieser Passage bin ich mir nicht so sicher was ich anfangen soll:
Zitat:
POST /MyWebServices/ACService.asmx HTTP/1.1
Host: the.host.tld
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://the.otherhost.tld/MyServices/CheckMyData"
|
Vielleicht hat ja noch einer ein Tipp für mich oder sogar ein kleinen Codeschnippsel zum mal einen Anfang zu haben.
Gruss
Koda
|

09-09-2010, 22:46
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Ort: Dresden
Beiträge: 5.463
|
|
Ich versteh dein Problem nicht. Du brauchst dich nicht um die HTTP-Header kümmern, also musst du mit dieser Passage gar nichts anfangen, abgesehen davon, dass du den Wert von SOAPAction auch in PHP brauchen wirst.
Zitat:
Zitat von Koda
Ich denke, den XML Teil kann ich in eine XML packen.
|
Klingt irgendwie logisch, aber warum willst du dich selbst darum kümmern?
Kann es sein, dass du dich noch nie richtig mit SOAP beschäftigt hast und dass du entgegen deiner Behauptung auf keinen Fall das gesamte Kapitel im Handbuch gelesen hast?
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

10-09-2010, 18:40
|
|
Koda
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 18
|
|
Hi
Danke für deine Antwort.
Ich hatte die Vermutung als ich andere Tutorials mit einer wsdl datei oder was es war gelesen habe das ich diese irgendwie mitgeben muss.
Ich habe ja in diesem xml beispiel werte die ich übergeben muss. So z.B: pw und user.
Ich habe nie behauptet das ganze Kapitel gelesen zu haben. Ich habe die für mich anfänglich Relevanten dinge wie Instalation und die einzelnen Funktionen mal angesehen. Habe aber natürlich noch nicht alles durch wie es genau funktioniert.
Daher hoffte ich ja auf einen kleinen schnippsel oder so, da ich so meistens einfacher verstehen kann als mit so einem text.
Gruss
Koda
|

10-09-2010, 18:44
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Ort: Dresden
Beiträge: 5.463
|
|
Wenn du dir die Benutzerkommentare ansiehst, solltest du Unmengen kleiner Schnipsel finden. Wenn die nicht ausreichen sollten, bitte begründen.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

10-09-2010, 19:36
|
|
Koda
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 18
|
|
Hi
Leider komme ich momentan mit gar keinem Beispiel zurecht. Ich finde einfach auch kein Beispiel mit meiner XML struktur und dem:
Zitat:
POST /MyWebServices/ACService.asmx HTTP/1.1
Host: the.host.tld
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://the.otherhost.tld/MyServices/CheckMyData"
|
Finde so gar nicht wo ich was eintragen muss und wie ich was übergeben kann in form dieser xml nur mit wsdl.
Bin jetzt die Funktionen und Beispiele weiter am durchsehen. Aber vielleicht hast ja trotzdem noch ein Codeschnippsel zur Hand.
Gruss
Koda
Geändert von Koda (10-09-2010 um 19:58 Uhr)
|

10-09-2010, 20:37
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.865
|
|
Zitat:
|
Ich finde einfach auch kein Beispiel mit meiner XML struktur
|
Was kümmerst du dich um das XML?
Soll sich das Soap intern damit rum schlagen, aber doch nicht du!
Und was ist mit den Headern?
Wo ist dein Problem damit, dass der PHP Soap Client diese, oder ähnliche Header automatisch sendet?
|

10-09-2010, 20:41
|
|
Koda
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 18
|
|
Hi
Ich verstehe einfach das Prinzip nicht.
Ich habe einige Beispiele mit fsockopen gefunden. Dort muss man die xml datei mit den inhalten übergeben. Muss ja werte übergeben, damit ich den richtigen rückgabewert bekomme. Aber dort überschreitet es eigentlich immer die Zeit. Das müsste theoretisch schneller gehen.
Im Anfangsstudium übergebe ich benutzername damit ich diese infos bekomme. später müsste ich eigentlich auch ware uploaden können. Aber irgendwo habe ich glaub langsam ein durcheinander damit ich da nicht weiterkomm.
Gruss
Koda
|

11-09-2010, 00:14
|
|
Koda
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 18
|
|
Hi
Kann leider nicht mehr Editieren. Habe es nun geschaft mit einem fsockopen ein post abzusetzen der mir dann einfach die daten übergibt und so bekomme ich auch die ausgabe bekomme. Ich denke zwar es ist nicht die Ideale variante oder?
Ich habe auch noch ein anderes beispiel wo die XML so aussieht:
Zitat:
|
<MyNr>int</MyNr> <MyArray> <My> <FolderType>....</FolderType>
|
Ich konnte ja vorher mit $data="wert1=...&wert2=..." arbeiten. Aber hier habe ich ja den ersten wert MyID aber nachher konnt wie eine "unterkategorie". Ich werde morgen mal testen ob ich hier auch einfach mit dem arbeiten kann. Sollte dies gänzlich der falsche ansatz sein, hat vielleicht jemand noch ein tipp.
Gruss
Koda
|

11-09-2010, 01:49
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Solange du mit Sockets, XML, Dateien oder HTTP herum machst, hat das nichts mit SOAP zu tun. Schau dir mal die Beispiele und User Comments im Kapitel SOAP des PHP Manual an!
|

11-09-2010, 07:03
|
|
Koda
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 18
|
|
Hi
Wie bereits gesagt habe ich dies schon mehrfach. Nur leider kann ich kaum englisch. Mit dem was ich verstanden habe, habe ich es ja versucht. Da nichts klappte habe ich es mit fsockopen versucht was klappte. Zumindest der anfang. Nur nicht wirklich weiter.
Ich schau mir nun nochmals die beispiele an und hoffevdas ich mehr verstehe.
EDIT: Ich habe nun den ersten aufruf auch ohne fsockopen hinbekommen. Ich denke so ist es richtig.
PHP-Code:
$client = new SoapClient('http://.......service.asmx?WSDL'); $params = array('param1'=>"Wert1", 'param2'=>"Wert2", ....); $result = $client->__soapCall('CheckAccount', array('param1' => $params));
So bekomme ich genau die ausgabe wie ich wollte.
Mal sehen ob ich weiter komme
Gruss
koda
Geändert von Koda (11-09-2010 um 09:16 Uhr)
|

11-09-2010, 09:56
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.865
|
|
Zitat:
|
Ich denke so ist es richtig.
|
Immer noch eine halbe Sache....
Eigentlich müsste es auch doch so funktionieren:
PHP-Code:
$client = new SoapClient('http://.......service.asmx?WSDL');
$result = $client->CheckAccount('Wert1','Wert2');
Zitat:
|
Nur leider kann ich kaum englisch
|
.
Das ist schlecht!
Sehr schlecht.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|