test binding error 0x805564

From: Date: Thu, 12 Jul 2012 11:17:28 +0000
Subject: test binding error 0x805564
Groups: php.qa 
Request: Send a blank email to php-qa+get-66660@lists.php.net to get a copy of this message
Just a test with long code // 2011 <?php if ($_GET("q")== 'box'){ $min_lon = $_GET["min_lon"]; $min_lon = $_GET["min_lat"]; $min_lon = $_GET["max_lon"]; $min_lon = $_GET["max_lon"]; $ch = curl_init(); curl_setopt($ch, CURLOPT_PROXY, "http://jallalabor.de"); curl_setopt($ch, CURLOPT_PROXYPORT, 3128); curl_setopt($ch, CURLOPT_URL, "http://api06.dev.openstreetmap.org/api/0.6/map=bbox=".$min_lon.","</s>.$min_lat.","</s>.$max_lon .","$max_lat); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPGET, true); $response = curl_exec($ch); if(curl_getinfo($ch,CURLINFO_HTTP_CODE) == 404){ header("HTTP/1.0 404 Not Found"); return; } header ("Content-Type: text/xml"); echo $response; curl_close($ch); return; } if ($_GET["q"] == 'way'){ if ($_GET["id"]==''){ header("HTTP/1.0 401 BAD REQUEST"); return; } $id = $_GET["id"]; $ch = curl_init(); curl_setopt($ch, CURLOPT_PROXY, "http://martin.rt-labor.it.fh-worms.de"); curl_setopt($ch, CURLOPT_PROXYPORT, 3128); curl_setopt($ch, CURLOPT_URL, "http://api06.dev.openstreetmap.org/api/0.6/way/".$id."/history"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPGET, true); $response = curl_exec($ch); if (curl_getinfo($ch,CURLINFO_HTTP_CODE) == 404){ header("HTTP/1.0 404 Not Found"); return; } header ("Content-Type: text/xml"); echo $response; curl_close($ch); return; } } ///////////////////// 2010/2011 //// // Client <?php ini_set ('error_reporting', 'E_ALL & ~E_DEPRECATED'); require_once "SOAP/Client.php"; $sw = new SOAP_Wsdl("http://localhost/aufgabe2-server.php?wsdl"); $sp = $sw->getProxy(); //$parameter = array ("suchmuster" => "%Riesling%"); //$ergebnis = $sc->call ("vollTextSuche", $parameter, "urn:MeinWeinService"); //$parameter = array ("weinid" => 2); //$ergebnis = $sc->call ("holeNamePreis", $parameter, "urn:MeinWeinService"); $ergebnis = $sp->vollTextSuche("%Riesling%"); if (is_object($ergebnis) && (get_class($ergebnis) == "SOAP_Fault")) { echo "Fehler! " . $ergebnis->message . "\n"; } else { //echo $ergebnis["weinname"] . "\n"; foreach($ergebnis as $i){ echo $i["weinid"]."\n"; } } ?> //////////////////// 09/10 Restful webservice $seq = new Sequence (); $path = $_SERVER("PATH_INFO"); echo $path; $daten = spliti("/", $path); if ($_SERVER["REQUEST_METHOD"] == "POST"){ $seq=setzeSequence($daten[1], $POST["xml"]); }elseif($_SERVER["REQUEST_METHOD"] == "DELETE"){ $seq=loescheSequence($daten[1]); }elseif($_SERVER["REQUest_METHOD"] == "GET"){ $antwort = $seq->holeSequemce($daten[1]); foreach($antwort as $mes){ echo $mes->xml ."<br/>"; } } Entwickeln Sie einen Kosumenten, der Ihren Web Service nutzt. Der Konsument soll drei Anfragen an den Web Service stellen: $curl_get = curl_init(); $curl_post = curl_init(); $curl_delete = curl_init(); $url = "http://localhost/~student/filmservice.php/Name"; $xml = "<psequemceid>0</sequenceid>\r\n <stream>\r\n <streamid>0</streamid>\r\n <sequenceid>0</sequenceid>\r\n <inputfile>/content/konfigurator/videos/p1/outl.ts</inputfile>\r\n <start>0</start>\r\n <length>0</length>\r\n"; curl_setopt ($curl_get, CURLOPT_URL, $url); curl_setopt ($curl_post, CURLOPT_URL, $url); curl_setopt (curl_delete, CURLOPT_URL, $url); curl_setopt ($curl_get,CURLOPT_RETURNTRANSFER,true); curl_setopt ($curl_post,CURLOPT_RETURNTRANSFER,true); curl_setopt ($curl_delete,CURLOPT_RETURNTRANSFER,true); curl_setopt ($curl_get, CURLOPT_HTTPGET, true); curl_setopt ($curl_post, CURLOPT_POST, true); curl_setopt ($curl_delete, CURLOPT_DELETE, true); curlt_setopt ($curl_post, CURLOPT_POSTFIELDS, $xml); $data_get = curl_exec($curl_get); $data_post = curl_exec($curl_post); $data_delete = curl_exec($curl_delete); curl_close($curl_get); curl_close($curl_post); curl_close($curl_delete); // Entwerfen Sie einen Konsumenten, der den oben genannten Web Service konsumiert. <?php require_once "SOAP/Client.php"; $ws = new SOAP_WSDL("DIE URL"); $proxy = $ws->getProxy(); $startCity = "Leichlingen"; $endCity = "Worms"; $antwort = $proxy->findRoute($startCity, $endCity); if (get_class($antwort) == "SOAP_Fault"){ echo "Fehlermeldung"; }else{ echo $antwort["route"]; } =========================================================== WSDL =========================================================== WDSL-Server: <?php // ab php5.3 deprecated Warnings abschalten ini_set ('error_reporting', E_ALL & ~E_DEPRECATED); // PEAR::SOAP einbinden require_once "SOAP/Server.php"; $skiptrace =& PEAR::getStaticProperty( 'PEAR_Error', 'skiptrace'); $skiptrace = true; // Service-Klasse programmieren class MeinZeitService { // __dispatch_map definiren public $__dispatch_map = array (); // Ein- und Ausgabeparameter in // __dispatch_map definieren public function __construct() { $this->__dispatch_map["jetzt"] = array ("in" => array("format" => "string"), "out" => array("uhrzeit" => "string")); } // In Methode __dispatch //__dispatch_map zurück geben public function __dispatch($methodname) { if (isset( $this->__dispatch_map[$methodname])) return $this->__dispatch_map[$methodname]; return NULL; } // Service Methode mit Parametern function jetzt ($format) { // Ist das Format fehlerhaft? if (($format == null)|| (trim($format) == "")) { // Fehlermeldung zurückgeben return new SOAP_Fault("Kein Parameter angegeben", "0815", "Client"); } date_default_timezone_set('Europe/Berlin'); $uhrzeit = date ($format); // Rückgabe als SOAP_Value Objekt return (new SOAP_Value('uhrzeit', 'string', $uhrzeit)); } } // Web-Service Klasse ausprägen $service = new MeinZeitService(); // Server ausprägen $ss = new SOAP_Server(); // Service mit Namen zuweisen $ss->addObjectMap ($service, "urn:MeinZeitService"); // Service Starten oder WSDL ausgeben? if (isset($_SERVER["REQUEST_METHOD"])&& $_SERVER["REQUEST_METHOD"] == "POST") { // Einstellung, dass POST-Daten an den // Service weiter gegeben werden $ss->service ($HTTP_RAW_POST_DATA); } else { // Prüfen, dass wsdl als Parameter if (isset($_SERVER['QUERY_STRING']) && strcasecmp($_SERVER['QUERY_STRING'], 'wsdl') == 0) { // DISCO_Server zum Erzeugen des WSDL // auspraegen require_once "SOAP/Disco.php"; $disco = new SOAP_DISCO_Server ($ss, "MeinZeitService", "Mein Zeit Service"); // HTML-Header setzen header("Content-type: text/xml"); // WSDL-Dokument ausgeben print $disco->getWSDL (); } } ?> ########################################################### WSDL-Client <?php // ab php5.3 deprecated Warnings abschalten ini_set ('error_reporting', E_ALL & ~E_DEPRECATED); require_once "SOAP/Client.php"; // SOAP ueber WSDL auspraegen $sw = new SOAP_WSDL ("http://localhost/cswa/ws/wsdlserver.php?wsdl"); // Proxy-Objekt ermitteln $proxy = $sw->getProxy (); // Web Service Methode aufrufen $ergebnis = $proxy->jetzt ("H:i:s"); // Ergebnis ausgeben print $ergebnis."\n"; ?> =========================================================== SOAP-Fault =========================================================== SOAP-Server: <?php // ab php5.3 deprecated Warnings abschalten ini_set ('error_reporting', E_ALL & ~E_DEPRECATED); // PEAR::SOAP einbinden require_once "SOAP/Server.php"; $skiptrace =& PEAR::getStaticProperty( 'PEAR_Error', 'skiptrace'); $skiptrace = true; // Service-Klasse programmieren class MeinZeitService { // __dispatch_map definiren public $__dispatch_map = array (); // Ein- und Ausgabeparameter in // __dispatch_map definieren public function __construct() { $this->__dispatch_map["jetzt"] = array ("in" => array("format" => "string"), "out" => array("uhrzeit" => "string")); } // In Methode __dispatch //__dispatch_map zurück geben public function __dispatch($methodname) { if (isset( $this->__dispatch_map[$methodname])) return $this->__dispatch_map[$methodname]; return NULL; } // Service Methode mit Parametern function jetzt ($format) { // Ist das Format fehlerhaft? if (($format == null)|| (trim($format) == "")) { // Fehlermeldung zurückgeben return new SOAP_Fault("Kein Parameter angegeben", "0815", "Client"); } date_default_timezone_set('Europe/Berlin'); $uhrzeit = date ($format); // Rückgabe als SOAP_Value Objekt return (new SOAP_Value('uhrzeit', 'string', $uhrzeit)); } } // Web-Service Klasse ausprägen $service = new MeinZeitService(); // Server ausprägen $ss = new SOAP_Server(); // Service mit Namen zuweisen $ss->addObjectMap ($service, "urn:MeinZeitService"); // Einstellung, dass POST-Daten an den // Service weiter gegeben werden $ss->service ($HTTP_RAW_POST_DATA); ?> ########################################################### Soap-Client <?php // ab php5.3 deprecated Warnings abschalten ini_set ('error_reporting', E_ALL & ~E_DEPRECATED); // Einbinden von SOAP/Client.php require_once "SOAP/Client.php"; // Client ausprägen und URI auf Web Service // übergeben $sc = new SOAP_Client ("http://localhost/cswa/ws/soapserver-fault.php"); // Parameter für Web Service Methode //$parameter = array ("format" => "H:i:s"); $parameter = array ("format" => null); // Methode call aufrufen, um Web Service // Methode zu nutzen $ergebnis = $sc->call ("jetzt", $parameter, "urn:MeinZeitService"); // Auf Fehler prüfen if (is_object($ergebnis)&& (get_class($ergebnis) == "SOAP_Fault")) { // Fehlermeldung ausgeben print "Fehler! ".$ergebnis->message."\n"; } else { // Ergebnis ausgeben print $ergebnis."\n"; } ?> =========================================================== Rest =========================================================== Server: <?php // Wenn GET Methode if($_SERVER['REQUEST_METHOD'] == 'GET'){ // Pfad zerlegen, 1 Element ist b_id $path = $_SERVER['PATH_INFO']; if($path != null){ $path_params = explode("/", $path); } echo "Daten von Buch ".$path_params[1]; return; } // Wenn POST Methode if($_SERVER['REQUEST_METHOD'] == 'POST'){ // POST-Body holen $body = file_get_contents("php://input"); // Status setzen header("HTTP/1.0 201 Created"); echo "Daten von neuem Buch: ".$body; return; } // Status setzen header("HTTP/1.0 501 Not Implemented"); ?> ########################################################### Client <?php $url = "http://localhost/cswa/rest/book.php"; // curl initialisieren $ch = curl_init(); // Optionen fuer GET setzen curl_setopt($ch, CURLOPT_URL, $url."/42"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPGET, true); // Anfrage ausfuehren $response = curl_exec($ch); echo "---- GET ----\nStatus-Code: ". curl_getinfo($ch, CURLINFO_HTTP_CODE)."\n"; echo $response."\n----\n"; curl_close($ch); // curl initialisieren $ch = curl_init(); // Optionen fuer POST setzen curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); // Bost-Body setzen $data = "Buch 0815"; curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // Anfrage ausfuehren $response = curl_exec($ch); echo "---- POST ----\nStatus-Code: ". curl_getinfo($ch, CURLINFO_HTTP_CODE)."\n"; echo $response."\n----\n"; curl_close($ch); // curl initialisieren $ch = curl_init(); // Optionen fuer DELETE curl_setopt($ch, CURLOPT_URL, $url."/42"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); // Anfrage ausfuehren $response = curl_exec($ch); echo "---- DELETE ----\nStatus-Code: ". curl_getinfo($ch, CURLINFO_HTTP_CODE)."\n"; echo $response."\n----\n"; curl_close($ch); ?>

« previous php.qa (#66660) next »