[Mapbender-commits] r3963 - trunk/mapbender/tools
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Thu May 28 08:50:49 EDT 2009
Author: christoph
Date: 2009-05-28 08:50:49 -0400 (Thu, 28 May 2009)
New Revision: 3963
Added:
trunk/mapbender/tools/send_post_curl.php
Log:
Added: trunk/mapbender/tools/send_post_curl.php
===================================================================
--- trunk/mapbender/tools/send_post_curl.php (rev 0)
+++ trunk/mapbender/tools/send_post_curl.php 2009-05-28 12:50:49 UTC (rev 3963)
@@ -0,0 +1,127 @@
+<html>
+<head>
+<?php
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+require_once(dirname(__FILE__)."/../classes/class_mb_exception.php");
+echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';
+?>
+<title>Test POST/SOAP Communication for CSW/WFS</title>
+</head>
+<?php
+if(isset($_REQUEST["filter"]) && $_REQUEST["filter"] != "" && $_REQUEST["onlineresource"] != ''){
+ $arURL = parse_url($_REQUEST["onlineresource"]);
+ $host = $arURL["host"];
+ $port = $arURL["port"];
+ $doSOAP=false;
+ if ($_REQUEST["soap"]=='true') {
+ $doSOAP=true;
+ }
+ if($port == ''){
+ $port = 80;
+ }
+ $path = $arURL["path"];
+ $method = "POST";
+ $data = stripslashes($_REQUEST["filter"]);
+ $dataXMLObject = new SimpleXMLElement($data);
+ $datanew = $dataXMLObject->asXML();
+ $headers = array(
+ "POST ".$path." HTTP/1.1",
+ "Content-type: text/xml; charset=\"utf-8\"",
+ "Cache-Control: no-cache",
+ "Pragma: no-cache",
+ "Content-length: ".strlen($datanew)
+ );
+ if ($doSOAP) {
+ $soapHead = "<soapenv:Envelope ";
+ $soapHead .= "xmlns:dc=\"http://purl.org/dc/elements/1.1/\" ";
+ $soapHead .= "xmlns:xi=\"http://www.w3.org/2001/XInclude\" ";
+ $soapHead .= "xmlns:dct=\"http://purl.org/dc/terms/\" ";
+ $soapHead .= "xmlns:ows=\"http://www.opengis.net/ows\" ";
+ $soapHead .= "xmlns:xlink=\"http://www.w3.org/1999/xlink\" ";
+ $soapHead .= "xmlns:csw=\"http://www.opengis.net/cat/csw/2.0.2\" ";
+ $soapHead .= "xmlns:soapenv=\"http://www.w3.org/2003/05/soap-envelope\">\n";
+ $soapHead .= "<soapenv:Header/>\n";
+ $soapHead .= "<soapenv:Body>\n";
+ $soapFoot = "</soapenv:Body>\n";
+ $soapFoot .= "</soapenv:Envelope>\n";
+ $data = $soapHead.$data.$soapFoot;
+ $dataXMLObject = new SimpleXMLElement($data);
+ $datanew = $dataXMLObject->asXML();
+ $headers = array(
+ "POST ".$path." HTTP/1.1",
+ "Content-type: application/soap+xml; charset=\"utf-8\"",
+ "Cache-Control: no-cache",
+ "Pragma: no-cache",
+ "SOAPAction: \"run\"",
+ "Content-length: ".strlen($datanew)
+ );
+ }
+ //do curl connection and request
+ $out = getCURL($_REQUEST["onlineresource"],$datanew,$headers,$doSOAP);
+}
+//of class_connector
+function getCURL($url,$data,$headers,$doSOAP){
+ $ch = curl_init ($url);
+ $arURL = parse_url($url);
+ $host = $arURL["host"];
+ $port = $arURL["port"];
+ if($port == ''){
+ $port = 80;
+ }
+ $path = $arURL["path"];
+ curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
+ //or with own headers
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
+ curl_setopt($ch, CURLOPT_POST, 1);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ if(CONNECTION_PROXY != ""){
+ curl_setopt($ch, CURLOPT_PROXY,CONNECTION_PROXY.":".CONNECTION_PORT);
+ }
+ if(CONNECTION_PASSWORD != ""){
+ curl_setopt ($ch, CURLOPT_PROXYUSERPWD, CONNECTION_USER.':'.CONNECTION_PASSWORD);
+ }
+ curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
+ $useragent='GeoPortal Rheinland-Pfalz Testsystem';
+ curl_setopt ($ch,CURLOPT_USERAGENT,$useragent);
+ $file = curl_exec ($ch);
+ curl_close ($ch);
+ $e = new mb_exception("send_post_curl.php: url " . $url);
+ $e = new mb_exception("send_post_curl.php: send post " . $data);
+ $e = new mb_exception("send_post_curl.php: response " . $file);
+ return $file;
+ }
+?>
+<body>
+<form action='send_post_curl.php' method='post'>
+OnlineResource (Choose the right one out of the Capabilities - SOAP and POST may differ!):<br>
+<input name='onlineresource' type='text' size='100' value='<?php echo $_REQUEST["onlineresource"]; ?>'>
+<br>
+Use SOAP <input type='checkbox' id='soap' name='soap' value='true'><br>
+Filter:<br>
+<textarea name='filter' cols='100' rows='15'><?php echo stripslashes($_REQUEST["filter"]); ?></textarea><br>
+Filter which is posted (maybe SOAP):<br>
+<textarea name='postfilter' cols='100' rows='15'><?php echo $datanew; ?></textarea><br>
+<input type='submit' value='submit'><br>
+HTTP Headers of sended Request (php array):<br>
+<textarea name='headers' cols='100' rows='5'><?php print_r($headers); ?></textarea><br>
+<br>
+Response:<br>
+<textarea name='response' cols='100' rows='30'><?php echo htmlentities($out); ?></textarea><br>
+</form>
+</body>
+</html>
More information about the Mapbender_commits
mailing list