php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.06.2011, 08:17  
Neuer Benutzer
 
Registriert seit: 16.07.2008
Beiträge: 15
vsnase befindet sich auf einem aufstrebenden Ast
Standard Aufruf Webservice funktioniert nicht

Guten Morgen,

ich möchte einen Webservice aufrufen. Folgender Code funtioniert:

PHP-Code:
<?php
require_once("/nusoap/lib/nusoap.php");
$WebServiceURL="http://myserver.de/ws/webservice.asmx?WSDL";
//function HelloWorld(){
$body "<HelloWorldResponse xmlns=\"http://myserver.de/\">
<HelloWorldResult>string</HelloWorldResult>
</HelloWorldResponse>"
;
$soap = new soapclientnusoap($WebServiceURL);
$nachricht $soap->serializeEnvelope($body);
$soap->send($nachricht"http://myserver.de/HelloWorld");
$ergebnis=$soap->document;
$xml=simplexml_load_string($ergebnis);
$ergebnis2=$xml->HelloWorldResult;
// return $ergebnis2;
//}
//HelloWorld();
?>
$ergebnis2 enthält "Hello Wolrd".

Folgender Code funktioniert hingegen nicht:

PHP-Code:
<?php
require_once("/nusoap/lib/nusoap.php");
$WebServiceURL="http://myserver.de/ws/webservice.asmx?WSDL";
function 
HelloWorld(){
$body "<HelloWorldResponse xmlns=\"http://myserver.de/\">
<HelloWorldResult>string</HelloWorldResult>
</HelloWorldResponse>"
;
$soap = new soapclientnusoap($WebServiceURL);
$nachricht $soap->serializeEnvelope($body);
$soap->send($nachricht"http://myserver.de/HelloWorld");
$ergebnis=$soap->document;
$xml=simplexml_load_string($ergebnis);
$ergebnis2=$xml->HelloWorldResult;
return 
$ergebnis2;
}
HelloWorld();
?>
$ergebnis2 ist nun leer.

Warum?

Das ganze läuft auf xampp (1.7.3) mit PHP 5.3.1, der Webservice wird per .NET4 bereitgestellt.

Ich mächte das über function regeln, da ich mehrere Webservices gerne in eine Datei zusammen packen würde und nichtfür jeden Service eine eigene Datei.

Danke


Volker

Geändert von vsnase (21.06.2011 um 08:18 Uhr). Grund: ergänzung
vsnase ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.06.2011, 09:17  
Neuer Benutzer
 
Registriert seit: 16.06.2011
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
morbion befindet sich auf einem aufstrebenden Ast
Standard

hi,

versuch mal nach der funktion statt
PHP-Code:
HelloWorld(); 
das ganze in eine Variable zu speichern.

zb:

PHP-Code:
$string HelloWorld();
echo 
$string
lg,
morb
morbion ist offline   Mit Zitat antworten
Alt 21.06.2011, 09:29  
Neuer Benutzer
 
Registriert seit: 16.07.2008
Beiträge: 15
vsnase befindet sich auf einem aufstrebenden Ast
Standard

Das mit der Variablen habe ich schon durch, würde auch nichts bringen, da bereits bei "$ergebnis" nichts vorhanden ist.

ich habe für Kontrollzwecke folgende Funktion eingefügt:
PHP-Code:
function WriteLog($errormessage){
$fp=fopen('errorlog.txt','a');
fwrite($fp,$errormessage);
fwrite($fp,"\r\n");
fclose($fp);} 
also
PHP-Code:
function HelloWorld(){
$body "<HelloWorldResponse xmlns=\"http://myserver.de/\">
<HelloWorldResult>string</HelloWorldResult>
</HelloWorldResponse>"
;
writelog("body ".$body);
$soap = new soapclientnusoap($WebServiceURL);
$nachricht $soap->serializeEnvelope($body);
writelog("nachricht ".$nachricht);
$soap->send($nachricht"http://myserver.de/HelloWorld");
$ergebnis=$soap->document;
writelog("ergebnis ".$ergebnis);
$xml=simplexml_load_string($ergebnis);
writelog("xml ".$xml);
$ergebnis2=$xml->HelloWorldResult;
writelog("HelloworldErgebnis ".$ergebnis2);
return 
$ergebnis2;} 
Das Logfile sollte enthalten:
Zitat:
body <HelloWorldResponse xmlns="http://myserver.de/">
<HelloWorldResult>string</HelloWorldResult>
</HelloWorldResponse>
nachricht <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlnssd="http://www.w3.org/2001/XMLSchema" xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/enco...oWorldResponse xmlns="http://myserver.de/">
<HelloWorldResult>string</HelloWorldResult>
</HelloWorldResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
ergebnis <HelloWorldResponse xmlns="http://myserver.de/"><HelloWorldResult>Hello World</HelloWorldResult></HelloWorldResponse>
xml
HelloworldErgebnis Hello World
enthält aber

Zitat:
body <HelloWorldResponse xmlns="http://myserver.de/">
<HelloWorldResult>string</HelloWorldResult>
</HelloWorldResponse>
nachricht <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlnssd="http://www.w3.org/2001/XMLSchema" xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/enco...oWorldResponse xmlns="http://myserver.de/">
<HelloWorldResult>string</HelloWorldResult>
</HelloWorldResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
ergebnis
xml
HelloworldErgebnis
Ich verstehe einfach nicht warum.

Volker
vsnase ist offline   Mit Zitat antworten
Alt 21.06.2011, 09:33  
Teo
Benutzer
 
Registriert seit: 17.08.2010
Beiträge: 81
PHP-Kenntnisse:
Anfänger
Teo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
PHP-Code:
$WebServiceURL="http://myserver.de/ws/webservice.asmx?WSDL";
function 
HelloWorld(){
$body "<HelloWorldResponse xmlns=\"http://myserver.de/\">
<HelloWorldResult>string</HelloWorldResult>
</HelloWorldResponse>"
;
$soap = new soapclientnusoap($WebServiceURL);
...

woher soll die Funktion die $WebServiceURL kennen? entweder mitübergeben, innerhalb definieren oder *pfui* global...

Geändert von ChrisB (21.06.2011 um 12:21 Uhr). Grund: Fremdzitat aus anderem Thread entfernt
Teo ist offline   Mit Zitat antworten
Alt 21.06.2011, 09:38  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Füg doch mal in dein Logfile noch $WebServiceURL ein.

Und aus purem Interesse: Wieso benutzt du nicht die automatisch erstellen Proxies, sondern bastelst deine Message von Hand zusammen?
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 21.06.2011, 10:55  
Neuer Benutzer
 
Registriert seit: 16.07.2008
Beiträge: 15
vsnase befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Teo Beitrag anzeigen
woher soll die Funktion die $WebServiceURL kennen? entweder mitübergeben, innerhalb definieren oder *pfui* global...
Das ist es natürlich! Wie bestimmt schon bemerktt ist PHP nicht so mein Ding.

Ich pack aber den WebServiceUrl lieber in eine globale Variable als bei 50 Funktionen die URL als Parameter zu übergeben. Oder warum mcht man das nicht?

Proxy war mir jetzt erst mal unwichtig. Sollte man aber tatsächlich ändern.

Volker
vsnase ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] str_replace funktioniert nur lokal Cogax PHP Tipps 2010 19 27.10.2010 21:28
Script funktioniert nicht petterapamm PHP Tipps 2010 26 07.09.2010 08:00
Code funktioniert plötzlich nicht mehr nach Serverumzug Hawk PHP Tipps 2010 4 18.08.2010 08:12
fsockopen funktioniert nicht mit SSL cider PHP-Fortgeschrittene 9 31.05.2010 21:10
Verschlüsselung funktioniert nicht richtig netmario PHP Tipps 2010 2 19.05.2010 22:57
mod_rewrite mit slash/ohne slash funktioniert nur teilweise taurus Server, Hosting und Workstations 4 13.09.2009 12:57
Webservice: Persistence-Modus [Update] timo_peschka PHP-Fortgeschrittene 0 07.08.2009 08:10
exec Batchdatei Aufruf funktioniert nicht richtig Beatzler PHP Tipps 2009 7 14.07.2009 13:42
[ERLEDIGT]PHP while-Schleife für Ausgabe funktioniert plötzlich nicht fuckinghot19 PHP Tipps 2009 6 05.06.2009 22:28
[Erledigt] Umlaute ersetzen funktioniert nicht richtig BlackSpirit PHP Tipps 2009 19 20.04.2009 12:04
PHP Aufruf aus HTML-Datei funktioniert nicht Dragonfly PHP Tipps 2008 10 07.10.2008 15:49
send button funktioniert nicht, finde fehler nicht selma123 PHP Tipps 2008 3 17.09.2008 11:57
Dateiupload via Webservice vsnase PHP Tipps 2008 2 13.08.2008 05:05
Session funktioniert nicht bei session.use_cookies = Off Quagga PHP Tipps 2007 13 13.01.2007 18:27
Dateien erstellen oder schreiben funktioniert nicht im Web PHP Tipps 2004-2 1 05.12.2004 19:39

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
webservice url php, simplexml_load_string leer, webservice aufrufen, php hello world funktioniert nicht, serializeenvelope soapenv, nusoap php 5.3 fehler, php webservice aufrufen soap, .asmx?wsdl php problem string, webservice aufruf funtioniert nicht, soap document style funktioniert nicht php, php hello wolrd funktioniert nicht, php webservice helloworld, php xmlns:soapenv simplexml_load_string funktioniert nicht, php soap funktion aufrufen, webservice php hello, nusoap für php 5.3, soap php ws function aufurfen, php webservice aufrufen, woher die url für einen webservice, php soap tut nicht

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:47 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum