com.mindprod.http
Class Head

java.lang.Object
  extended by com.mindprod.http.Head

public final class Head
extends java.lang.Object

Simulates a browser posting a form to CGI via HEAD.

It does not read any data. It is used for link checking where the server accepts HEAD requests. If the server might ignore HEAD requests, use Probe instead.

Since:
1998
Version:
2.3 2010-11-14 new method setInstanceFollowRedirects
Author:
Roedy Green, Canadian Mind Products

Field Summary
static java.lang.String EMBEDDED_COPYRIGHT
          undisplayed copyright notice
static java.lang.String VERSION_STRING
          embedded version string.
 
Constructor Summary
Head()
          constructor
 
Method Summary
protected static void dumpHeaders(java.lang.String title, java.net.HttpURLConnection urlc)
          display the contents of the header fields key: value, value, value
static java.lang.String encodeParms(java.lang.String encoding, java.lang.String... parms)
          encode a set of parms for the command, separated with ? = & = * This method does not automatically include the result in the message sent to the host.
 java.lang.String getReferer()
          ges the Referrer ie.
 int getResponseCode()
          responseCode from most recent post/get Meaning of various codes are described at HttpURLConnection and at http://mindprod.com/jgloss/http.html
 java.lang.String getResponseMessage()
          responseCode from most recent post/get
 java.net.URL getURL()
          Get URL for this connection.
 int send(java.lang.String host, int port, java.lang.String action)
          Check if URL is working Send a form full of data to the CGI host using HEAD.
 int send(java.net.URL url)
          Check if URL is working Send a form full of data to the CGI host using HEAD.
 void setConnectTimeout(int connectTimeout)
          override the default connect timeout of 50 seconds
 void setInstanceFollowRedirects(boolean followRedirects)
          control whether redirects are automatically followed or treated as errors.
 void setParms(java.lang.String... parms)
          set the parms that will be send tacked onto the end of the URL, get-style
 void setReadTimeout(int readTimeout)
          override the default read timeout of 40 seconds
 void setReferer(java.lang.String referer)
          set the Referrer ie.
 void setRequestProperties(java.lang.String... requestProperties)
          set additional requestProperties.
protected  void setStandardProperties(java.net.URLConnection urlc)
          set up the standard properties on the connection
 void setUserAgent(java.lang.String userAgent)
          override the default User-Agent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EMBEDDED_COPYRIGHT

public static final java.lang.String EMBEDDED_COPYRIGHT
undisplayed copyright notice

See Also:
Constant Field Values

VERSION_STRING

public static final java.lang.String VERSION_STRING
embedded version string.

See Also:
Constant Field Values
Constructor Detail

Head

public Head()
constructor

Method Detail

send

public int send(java.net.URL url)
Check if URL is working Send a form full of data to the CGI host using HEAD.

Parameters:
url - complete URL including get parms pre-encoded. http: or https:
Returns:
responseCode

send

public int send(java.lang.String host,
                int port,
                java.lang.String action)
Check if URL is working Send a form full of data to the CGI host using HEAD. You must have done a setParms first.

Parameters:
host - host name of the website, Should be form:"mindprod.com", no lead http://.
port - -1 if default, 8081 for local echoserver.
action - action of form, page on website. Usually has a lead /.
Returns:
responseCode

encodeParms

public static java.lang.String encodeParms(java.lang.String encoding,
                                           java.lang.String... parms)
                                    throws java.io.UnsupportedEncodingException
encode a set of parms for the command, separated with ? = & = * This method does not automatically include the result in the message sent to the host.

Parameters:
encoding - for URLEncoder
parms - 0..n strings to be send as parameter, alternating keyword/value
Returns:
all the parms in one string encoded with lead ?
Throws:
java.io.UnsupportedEncodingException - if bad encoding

getReferer

public java.lang.String getReferer()
ges the Referrer ie. the name of a web page this request ostensibly came from.

Returns:
referrer e.g "http://mindprod.com/index.html", null for none.
See Also:
details on Referrer

setReferer

public void setReferer(java.lang.String referer)
set the Referrer ie. the name of a web page this request ostensibly came from. Note that the word Referrer is spelled incorrectly as Referer the HTTP spec.

Parameters:
referer - e.g "http://mindprod.com/index.html", null for none.
See Also:
details on Referrer

getResponseCode

public int getResponseCode()
responseCode from most recent post/get Meaning of various codes are described at HttpURLConnection and at http://mindprod.com/jgloss/http.html

Returns:
responseCode
See Also:
HttpURLConnection

getResponseMessage

public java.lang.String getResponseMessage()
responseCode from most recent post/get

Returns:
responseCode

getURL

public java.net.URL getURL()
Get URL for this connection.

Returns:
URL, including encoded GET Parameters, but not POST parameters.

setConnectTimeout

public void setConnectTimeout(int connectTimeout)
override the default connect timeout of 50 seconds

Parameters:
connectTimeout - timeout to connect in ms. Note int, not long.

setInstanceFollowRedirects

public void setInstanceFollowRedirects(boolean followRedirects)
control whether redirects are automatically followed or treated as errors.

Parameters:
followRedirects - true=auto follow, false=treat as error..
See Also:
HttpURLConnection.setInstanceFollowRedirects(boolean)

setParms

public void setParms(java.lang.String... parms)
set the parms that will be send tacked onto the end of the URL, get-style

Parameters:
parms - 0..n strings to be send as parameter, alternating keyword/value
See Also:
Post.setPostParms(String...)

setReadTimeout

public void setReadTimeout(int readTimeout)
override the default read timeout of 40 seconds

Parameters:
readTimeout - timeout to connect int ms. Note int, not long.

setRequestProperties

public void setRequestProperties(java.lang.String... requestProperties)
set additional requestProperties. Replaced previous set.

Parameters:
requestProperties - pairs: key value.

setUserAgent

public void setUserAgent(java.lang.String userAgent)
override the default User-Agent

Parameters:
userAgent - User-Agent a browser uses in an HTTP header to identify itself. null for no User Agent. By default you get Firefox.
See Also:
details on User-Agent

dumpHeaders

protected static void dumpHeaders(java.lang.String title,
                                  java.net.HttpURLConnection urlc)
display the contents of the header fields key: value, value, value

Parameters:
title - Title to decorated the dump.
urlc - HTTP connection

setStandardProperties

protected void setStandardProperties(java.net.URLConnection urlc)
set up the standard properties on the connection

Parameters:
urlc - Connection we are setting up.