Add analytics
[bus.git] / busui / owa / includes / httpclient-2009-09-02 / test_http.php
blob:a/busui/owa/includes/httpclient-2009-09-02/test_http.php -> blob:b/busui/owa/includes/httpclient-2009-09-02/test_http.php
--- a/busui/owa/includes/httpclient-2009-09-02/test_http.php
+++ b/busui/owa/includes/httpclient-2009-09-02/test_http.php
@@ -1,1 +1,238 @@
-
+<?php
+/*
+ * test_http.php
+ *
+ * @(#) $Header: /home/mlemos/cvsroot/http/test_http.php,v 1.18 2008/02/24 05:06:30 mlemos Exp $
+ *
+ */
+
+?><HTML>
+<HEAD>
+<TITLE>Test for Manuel Lemos' PHP HTTP class</TITLE>
+</HEAD>
+<BODY>
+<H1><CENTER>Test for Manuel Lemos' PHP HTTP class</CENTER></H1>
+<HR>
+<UL>
+<?php
+	require("http.php");
+
+	/* Uncomment the line below when accessing Web servers or proxies that
+	 * require authentication.
+	 */
+	/*
+	require("sasl.php");
+	*/
+
+	set_time_limit(0);
+	$http=new http_class;
+
+	/* Connection timeout */
+	$http->timeout=0;
+
+	/* Data transfer timeout */
+	$http->data_timeout=0;
+
+	/* Output debugging information about the progress of the connection */
+	$http->debug=1;
+
+	/* Format dubug output to display with HTML pages */
+	$http->html_debug=1;
+
+
+	/*
+	 *  Need to emulate a certain browser user agent?
+	 *  Set the user agent this way:
+	 */
+	$http->user_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
+
+	/*
+	 *  If you want to the class to follow the URL of redirect responses
+	 *  set this variable to 1.
+	 */
+	$http->follow_redirect=1;
+
+	/*
+	 *  How many consecutive redirected requests the class should follow.
+	 */
+	$http->redirection_limit=5;
+
+	/*
+	 *  If your DNS always resolves non-existing domains to a default IP
+	 *  address to force the redirection to a given page, specify the
+	 *  default IP address in this variable to make the class handle it
+	 *  as when domain resolution fails.
+	 */
+	$http->exclude_address="";
+
+	/*
+	 *  If you want to establish SSL connections and you do not want the
+	 *  class to use the CURL library, set this variable to 0 .
+	 */
+	$http->prefer_curl=0;
+
+	/*
+	 *  If basic authentication is required, specify the user name and
+	 *  password in these variables.
+	 */
+
+	$user="";
+	$password="";
+	$realm="";       /* Authentication realm or domain      */
+	$workstation=""; /* Workstation for NTLM authentication */
+	$authentication=(strlen($user) ? UrlEncode($user).":".UrlEncode($password)."@" : "");
+
+/*
+	Do you want to access a page via SSL?
+	Just specify the https:// URL.
+	$url="https://www.openssl.org/";
+*/
+
+	$url="http://".$authentication."www.php.net/";
+
+	/*
+	 *  Generate a list of arguments for opening a connection and make an
+	 *  HTTP request from a given URL.
+	 */
+	$error=$http->GetRequestArguments($url,$arguments);
+
+	if(strlen($realm))
+		$arguments["AuthRealm"]=$realm;
+
+	if(strlen($workstation))
+		$arguments["AuthWorkstation"]=$workstation;
+
+	$http->authentication_mechanism=""; // force a given authentication mechanism;
+
+	/*
+	 *  If you need to access a site using a proxy server, use these
+	 *  arguments to set the proxy host and authentication credentials if
+	 *  necessary.
+	 */
+	/*
+	$arguments["ProxyHostName"]="127.0.0.1";
+	$arguments["ProxyHostPort"]=3128;
+	$arguments["ProxyUser"]="proxyuser";
+	$arguments["ProxyPassword"]="proxypassword";
+	$arguments["ProxyRealm"]="proxyrealm";  // Proxy authentication realm or domain
+	$arguments["ProxyWorkstation"]="proxyrealm"; // Workstation for NTLM proxy authentication
+	$http->proxy_authentication_mechanism=""; // force a given proxy authentication mechanism;
+	*/
+
+	/*
+	 *  If you need to access a site using a SOCKS server, use these
+	 *  arguments to set the SOCKS host and port.
+	 */
+	/*
+	$arguments["SOCKSHostName"]='127.0.0.1';
+	$arguments["SOCKSHostPort"]=1080;
+	$arguments["SOCKSVersion"]='5';
+	*/
+
+	/* Set additional request headers */
+	$arguments["Headers"]["Pragma"]="nocache";
+/*
+	Is it necessary to specify a certificate to access a page via SSL?
+	Specify the certificate file this way.
+	$arguments["SSLCertificateFile"]="my_certificate_file.pem";
+	$arguments["SSLCertificatePassword"]="some certificate password";
+*/
+
+/*
+	Is it necessary to preset some cookies?
+	Just use the SetCookie function to set each cookie this way:
+
+	$cookie_name="LAST_LANG";
+	$cookie_value="de";
+	$cookie_expires="2010-01-01 00:00:00"; // "" for session cookies
+	$cookie_uri_path="/";
+	$cookie_domain=".php.net";
+	$cookie_secure=0; // 1 for SSL only cookies
+	$http->SetCookie($cookie_name, $cookie_value, $cookie_expiry, $cookie_uri_path, $cookie_domain, $cookie_secure);
+*/
+
+	echo "<H2><LI>Opening connection to:</H2>\n<PRE>",HtmlEntities($arguments["HostName"]),"</PRE>\n";
+	flush();
+	$error=$http->Open($arguments);
+
+	if($error=="")
+	{
+		echo "<H2><LI>Sending request for page:</H2>\n<PRE>";
+		echo HtmlEntities($arguments["RequestURI"]),"\n";
+		if(strlen($user))
+			echo "\nLogin:    ",$user,"\nPassword: ",str_repeat("*",strlen($password));
+		echo "</PRE>\n";
+		flush();
+		$error=$http->SendRequest($arguments);
+
+		if($error=="")
+		{
+			echo "<H2><LI>Request:</LI</H2>\n<PRE>\n".HtmlEntities($http->request)."</PRE>\n";
+			echo "<H2><LI>Request headers:</LI</H2>\n<PRE>\n";
+			for(Reset($http->request_headers),$header=0;$header<count($http->request_headers);Next($http->request_headers),$header++)
+			{
+				$header_name=Key($http->request_headers);
+				if(GetType($http->request_headers[$header_name])=="array")
+				{
+					for($header_value=0;$header_value<count($http->request_headers[$header_name]);$header_value++)
+						echo $header_name.": ".$http->request_headers[$header_name][$header_value],"\r\n";
+				}
+				else
+					echo $header_name.": ".$http->request_headers[$header_name],"\r\n";
+			}
+			echo "</PRE>\n";
+			flush();
+
+			$headers=array();
+			$error=$http->ReadReplyHeaders($headers);
+			if($error=="")
+			{
+				echo "<H2><LI>Response status code:</LI</H2>\n<P>".$http->response_status;
+				switch($http->response_status)
+				{
+					case "301":
+					case "302":
+					case "303":
+					case "307":
+						echo " (redirect to <TT>".$headers["location"]."</TT>)<BR>\nSet the <TT>follow_redirect</TT> variable to handle redirect responses automatically.";
+						break;
+				}
+				echo "</P>\n";
+				echo "<H2><LI>Response headers:</LI</H2>\n<PRE>\n";
+				for(Reset($headers),$header=0;$header<count($headers);Next($headers),$header++)
+				{
+					$header_name=Key($headers);
+					if(GetType($headers[$header_name])=="array")
+					{
+						for($header_value=0;$header_value<count($headers[$header_name]);$header_value++)
+							echo $header_name.": ".$headers[$header_name][$header_value],"\r\n";
+					}
+					else
+						echo $header_name.": ".$headers[$header_name],"\r\n";
+				}
+				echo "</PRE>\n";
+				flush();
+
+				echo "<H2><LI>Response body:</LI</H2>\n<PRE>\n";
+				for(;;)
+				{
+					$error=$http->ReadReplyBody($body,1000);
+					if($error!=""
+					|| strlen($body)==0)
+						break;
+					echo HtmlSpecialChars($body);
+				}
+				echo "</PRE>\n";
+				flush();
+			}
+		}
+		$http->Close();
+	}
+	if(strlen($error))
+		echo "<CENTER><H2>Error: ",$error,"</H2><CENTER>\n";
+?>
+</UL>
+<HR>
+</BODY>
+</HTML>
+