// HTMLParser Library $Name: v1_6_20060319 $ - A java-based parser for HTML // http://sourceforge.org/projects/htmlparser // Copyright (C) 2004 Derrick Oswald // // Revision Control Information // // $Source: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/http/HttpHeader.java,v $ // $Author: derrickoswald $ // $Date: 2005/06/19 12:01:13 $ // $Revision: 1.1 $ // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // package org.htmlparser.http; import java.io.IOException; import java.net.HttpURLConnection; import java.util.Iterator; import java.util.List; import java.util.Map; /** * Utility methods to display HTTP headers. */ public class HttpHeader { /** * Private constructor. * This class is completely static. */ private HttpHeader () { } /** * Gets the request header for the connection. * <em>This header is generated from the contents of the connection * and may not be exactly the same as the request that will be sent.</em> * @param connection The connection to convert into an HTTP request header. * @return The string that would be sent by the HTTP request. */ public static String getRequestHeader (HttpURLConnection connection) { // dump it StringBuffer buffer; Map map; String key; List items; buffer = new StringBuffer (1024); buffer.append (connection.getRequestMethod ()); buffer.append (" "); buffer.append (connection.getURL ()); buffer.append (" HTTP/1.1\n"); map = connection.getRequestProperties (); for (Iterator iter = map.keySet ().iterator (); iter.hasNext (); ) { key = (String)iter.next (); items = (List)map.get (key); buffer.append (key); buffer.append (": "); for (int i = 0; i < items.size (); i++) { if (0 != i) buffer.append (", "); buffer.append (items.get (i)); } buffer.append ("\n"); } return (buffer.toString ()); } /** * Gets the response header for the connection. * Calling this method on an un-connected connection will * generate an error, as will an attempt to get information * from a connected but invalid connection. * <em>This header is generated from the contents of the connection * and may not be exactly the same as the response that was received.</em> * @param conn The connection to convert into an HTTP response header. * @return The string that was sent as the HTTP response. */ public static String getResponseHeader (HttpURLConnection conn) { // dump it StringBuffer buffer; int code; String message; String key; String value; buffer = new StringBuffer (1024); try { code = conn.getResponseCode (); if (-1 != code) { message = conn.getResponseMessage (); buffer.append ("HTTP/1.1 "); buffer.append (code); buffer.append (" "); buffer.append (message); buffer.append ("\n"); for (int i = 0; null != (value = conn.getHeaderField (i)); i++) { key = conn.getHeaderFieldKey (i); if (null != key) { buffer.append (key); buffer.append (": "); buffer.append (value); buffer.append ("\n"); } } } } catch (IOException ioe) { buffer.append (ioe.toString ()); } return (buffer.toString ()); } }