<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_22) on Tue Sep 18 20:44:13 GMT+01:00 2012 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
HttpMessage (HttpComponents Core 4.2.2 API)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.http.HttpMessage interface">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="HttpMessage (HttpComponents Core 4.2.2 API)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/HttpMessage.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../org/apache/http/HttpInetConnection.html" title="interface in org.apache.http"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../org/apache/http/HttpRequest.html" title="interface in org.apache.http"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../index.html?org/apache/http/HttpMessage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="HttpMessage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.http</FONT>
<BR>
Interface HttpMessage</H2>
<DL>
<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../org/apache/http/HttpEntityEnclosingRequest.html" title="interface in org.apache.http">HttpEntityEnclosingRequest</A>, <A HREF="../../../org/apache/http/HttpRequest.html" title="interface in org.apache.http">HttpRequest</A>, <A HREF="../../../org/apache/http/HttpResponse.html" title="interface in org.apache.http">HttpResponse</A></DD>
</DL>
<DL>
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../org/apache/http/message/AbstractHttpMessage.html" title="class in org.apache.http.message">AbstractHttpMessage</A>, <A HREF="../../../org/apache/http/message/BasicHttpEntityEnclosingRequest.html" title="class in org.apache.http.message">BasicHttpEntityEnclosingRequest</A>, <A HREF="../../../org/apache/http/message/BasicHttpRequest.html" title="class in org.apache.http.message">BasicHttpRequest</A>, <A HREF="../../../org/apache/http/message/BasicHttpResponse.html" title="class in org.apache.http.message">BasicHttpResponse</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public interface <B>HttpMessage</B></DL>
</PRE>

<P>
HTTP messages consist of requests from client to server and responses
 from server to client.
 <pre>
     HTTP-message   = Request | Response     ; HTTP/1.1 messages
 </pre>
 <p>
 HTTP messages use the generic message format of RFC 822 for
 transferring entities (the payload of the message). Both types
 of message consist of a start-line, zero or more header fields
 (also known as "headers"), an empty line (i.e., a line with nothing
 preceding the CRLF) indicating the end of the header fields,
 and possibly a message-body.
 </p>
 <pre>
      generic-message = start-line
                        *(message-header CRLF)
                        CRLF
                        [ message-body ]
      start-line      = Request-Line | Status-Line
 </pre>
<P>

<P>
<DL>
<DT><B>Since:</B></DT>
  <DD>4.0</DD>
</DL>
<HR>

<P>

<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#addHeader(org.apache.http.Header)">addHeader</A></B>(<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A>&nbsp;header)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a header to this message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#addHeader(java.lang.String, java.lang.String)">addHeader</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a header to this message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#containsHeader(java.lang.String)">containsHeader</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if a certain header is present in this message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#getAllHeaders()">getAllHeaders</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all the headers of this message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#getFirstHeader(java.lang.String)">getFirstHeader</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the first header with a specified name of this message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#getHeaders(java.lang.String)">getHeaders</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all the headers with a specified name of this message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#getLastHeader(java.lang.String)">getLastHeader</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the last header with a specified name of this message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/http/params/HttpParams.html" title="interface in org.apache.http.params">HttpParams</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#getParams()">getParams</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the parameters effective for this message as set by
 <A HREF="../../../org/apache/http/HttpMessage.html#setParams(org.apache.http.params.HttpParams)"><CODE>setParams(HttpParams)</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/http/ProtocolVersion.html" title="class in org.apache.http">ProtocolVersion</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#getProtocolVersion()">getProtocolVersion</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the protocol version this message is compatible with.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/http/HeaderIterator.html" title="interface in org.apache.http">HeaderIterator</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#headerIterator()">headerIterator</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an iterator of all the headers.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/http/HeaderIterator.html" title="interface in org.apache.http">HeaderIterator</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#headerIterator(java.lang.String)">headerIterator</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an iterator of the headers with a given name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#removeHeader(org.apache.http.Header)">removeHeader</A></B>(<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A>&nbsp;header)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes a header from this message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#removeHeaders(java.lang.String)">removeHeaders</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all headers with a certain name from this message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#setHeader(org.apache.http.Header)">setHeader</A></B>(<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A>&nbsp;header)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overwrites the first header with the same name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#setHeader(java.lang.String, java.lang.String)">setHeader</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overwrites the first header with the same name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#setHeaders(org.apache.http.Header[])">setHeaders</A></B>(<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A>[]&nbsp;headers)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overwrites all the headers in the message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/http/HttpMessage.html#setParams(org.apache.http.params.HttpParams)">setParams</A></B>(<A HREF="../../../org/apache/http/params/HttpParams.html" title="interface in org.apache.http.params">HttpParams</A>&nbsp;params)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides parameters to be used for the processing of this message.</TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="getProtocolVersion()"><!-- --></A><H3>
getProtocolVersion</H3>
<PRE>
<A HREF="../../../org/apache/http/ProtocolVersion.html" title="class in org.apache.http">ProtocolVersion</A> <B>getProtocolVersion</B>()</PRE>
<DL>
<DD>Returns the protocol version this message is compatible with.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="containsHeader(java.lang.String)"><!-- --></A><H3>
containsHeader</H3>
<PRE>
boolean <B>containsHeader</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Checks if a certain header is present in this message. Header values are
 ignored.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the header name to check for.
<DT><B>Returns:</B><DD>true if at least one header with this name is present.</DL>
</DD>
</DL>
<HR>

<A NAME="getHeaders(java.lang.String)"><!-- --></A><H3>
getHeaders</H3>
<PRE>
<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A>[] <B>getHeaders</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Returns all the headers with a specified name of this message. Header values
 are ignored. Headers are orderd in the sequence they will be sent over a
 connection.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the headers to return.
<DT><B>Returns:</B><DD>the headers whose name property equals <code>name</code>.</DL>
</DD>
</DL>
<HR>

<A NAME="getFirstHeader(java.lang.String)"><!-- --></A><H3>
getFirstHeader</H3>
<PRE>
<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A> <B>getFirstHeader</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Returns the first header with a specified name of this message. Header
 values are ignored. If there is more than one matching header in the
 message the first element of <A HREF="../../../org/apache/http/HttpMessage.html#getHeaders(java.lang.String)"><CODE>getHeaders(String)</CODE></A> is returned.
 If there is no matching header in the message <code>null</code> is
 returned.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the header to return.
<DT><B>Returns:</B><DD>the first header whose name property equals <code>name</code>
   or <code>null</code> if no such header could be found.</DL>
</DD>
</DL>
<HR>

<A NAME="getLastHeader(java.lang.String)"><!-- --></A><H3>
getLastHeader</H3>
<PRE>
<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A> <B>getLastHeader</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Returns the last header with a specified name of this message. Header values
 are ignored. If there is more than one matching header in the message the
 last element of <A HREF="../../../org/apache/http/HttpMessage.html#getHeaders(java.lang.String)"><CODE>getHeaders(String)</CODE></A> is returned. If there is no
 matching header in the message <code>null</code> is returned.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the header to return.
<DT><B>Returns:</B><DD>the last header whose name property equals <code>name</code>.
   or <code>null</code> if no such header could be found.</DL>
</DD>
</DL>
<HR>

<A NAME="getAllHeaders()"><!-- --></A><H3>
getAllHeaders</H3>
<PRE>
<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A>[] <B>getAllHeaders</B>()</PRE>
<DL>
<DD>Returns all the headers of this message. Headers are orderd in the sequence
 they will be sent over a connection.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>all the headers of this message</DL>
</DD>
</DL>
<HR>

<A NAME="addHeader(org.apache.http.Header)"><!-- --></A><H3>
addHeader</H3>
<PRE>
void <B>addHeader</B>(<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A>&nbsp;header)</PRE>
<DL>
<DD>Adds a header to this message. The header will be appended to the end of
 the list.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>header</CODE> - the header to append.</DL>
</DD>
</DL>
<HR>

<A NAME="addHeader(java.lang.String, java.lang.String)"><!-- --></A><H3>
addHeader</H3>
<PRE>
void <B>addHeader</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
<DL>
<DD>Adds a header to this message. The header will be appended to the end of
 the list.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the header.<DD><CODE>value</CODE> - the value of the header.</DL>
</DD>
</DL>
<HR>

<A NAME="setHeader(org.apache.http.Header)"><!-- --></A><H3>
setHeader</H3>
<PRE>
void <B>setHeader</B>(<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A>&nbsp;header)</PRE>
<DL>
<DD>Overwrites the first header with the same name. The new header will be appended to
 the end of the list, if no header with the given name can be found.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>header</CODE> - the header to set.</DL>
</DD>
</DL>
<HR>

<A NAME="setHeader(java.lang.String, java.lang.String)"><!-- --></A><H3>
setHeader</H3>
<PRE>
void <B>setHeader</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
<DL>
<DD>Overwrites the first header with the same name. The new header will be appended to
 the end of the list, if no header with the given name can be found.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the header.<DD><CODE>value</CODE> - the value of the header.</DL>
</DD>
</DL>
<HR>

<A NAME="setHeaders(org.apache.http.Header[])"><!-- --></A><H3>
setHeaders</H3>
<PRE>
void <B>setHeaders</B>(<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A>[]&nbsp;headers)</PRE>
<DL>
<DD>Overwrites all the headers in the message.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>headers</CODE> - the array of headers to set.</DL>
</DD>
</DL>
<HR>

<A NAME="removeHeader(org.apache.http.Header)"><!-- --></A><H3>
removeHeader</H3>
<PRE>
void <B>removeHeader</B>(<A HREF="../../../org/apache/http/Header.html" title="interface in org.apache.http">Header</A>&nbsp;header)</PRE>
<DL>
<DD>Removes a header from this message.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>header</CODE> - the header to remove.</DL>
</DD>
</DL>
<HR>

<A NAME="removeHeaders(java.lang.String)"><!-- --></A><H3>
removeHeaders</H3>
<PRE>
void <B>removeHeaders</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Removes all headers with a certain name from this message.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The name of the headers to remove.</DL>
</DD>
</DL>
<HR>

<A NAME="headerIterator()"><!-- --></A><H3>
headerIterator</H3>
<PRE>
<A HREF="../../../org/apache/http/HeaderIterator.html" title="interface in org.apache.http">HeaderIterator</A> <B>headerIterator</B>()</PRE>
<DL>
<DD>Returns an iterator of all the headers.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>Iterator that returns Header objects in the sequence they are
         sent over a connection.</DL>
</DD>
</DL>
<HR>

<A NAME="headerIterator(java.lang.String)"><!-- --></A><H3>
headerIterator</H3>
<PRE>
<A HREF="../../../org/apache/http/HeaderIterator.html" title="interface in org.apache.http">HeaderIterator</A> <B>headerIterator</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Returns an iterator of the headers with a given name.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the headers over which to iterate, or
                  <code>null</code> for all headers
<DT><B>Returns:</B><DD>Iterator that returns Header objects with the argument name
         in the sequence they are sent over a connection.</DL>
</DD>
</DL>
<HR>

<A NAME="getParams()"><!-- --></A><H3>
getParams</H3>
<PRE>
<A HREF="../../../org/apache/http/params/HttpParams.html" title="interface in org.apache.http.params">HttpParams</A> <B>getParams</B>()</PRE>
<DL>
<DD>Returns the parameters effective for this message as set by
 <A HREF="../../../org/apache/http/HttpMessage.html#setParams(org.apache.http.params.HttpParams)"><CODE>setParams(HttpParams)</CODE></A>.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setParams(org.apache.http.params.HttpParams)"><!-- --></A><H3>
setParams</H3>
<PRE>
void <B>setParams</B>(<A HREF="../../../org/apache/http/params/HttpParams.html" title="interface in org.apache.http.params">HttpParams</A>&nbsp;params)</PRE>
<DL>
<DD>Provides parameters to be used for the processing of this message.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>params</CODE> - the parameters</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/HttpMessage.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../org/apache/http/HttpInetConnection.html" title="interface in org.apache.http"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../org/apache/http/HttpRequest.html" title="interface in org.apache.http"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../index.html?org/apache/http/HttpMessage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="HttpMessage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright &#169; 2005-2012 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
