--- 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> +