com.waveset.util
Class HttpClient

java.lang.Object
  extended bycom.waveset.util.HttpClient

public class HttpClient
extends java.lang.Object

A class providing a high level interface for sending basic HTTP requests to a server, and returning responses. Used by the JUnit test framework for SSO testing.

This is similar in spirit to HTTPClient, but not as feature rich, and includes an implementation built directly upon java.net.HttpUrlConnection. Development was motivated by frequent connection errors within HTTPClient when performing request/responses programatically at a high rate of speed.


Nested Class Summary
static class HttpClient.Cookie
          Helper class containing information about cookies.
 
Field Summary
 int _MAX_WAIT
          The maximum amount of time we'll wait for an HTTP response in milliseconds.
static java.lang.String code_id
           
 
Constructor Summary
HttpClient()
           
 
Method Summary
 void clearAuthentication()
           
 void clearCookies()
          Clear all cookies.
 void clearCookies(java.lang.String domain)
          Clear all cookies for a domain.
 void clearSessionCookies()
          Clear all session cookies.
 void clearSessionCookies(java.lang.String domain)
          Clear all session cookies for a domain.
 void dumpCookies()
          Debug method to dump all cookies.
 void dumpHeaders()
          Dump all headers.
 java.lang.String encryptCredentials(java.lang.String name, java.lang.String pass)
           
 int get(java.lang.String path)
          Do a get.
 java.lang.String getBody()
          Return the last response body as a string.
 byte[] getBodyBytes()
          Return the last response body.
 java.lang.String getCookie(java.lang.String domain, java.lang.String name)
          Obtain a cookie value
 HttpClient.Cookie getCookieObject(java.lang.String domain, java.lang.String name)
          Obtain a cookie object.
 java.util.Map getCookies(java.lang.String domain)
          Get all the cookies in a domain.
 java.lang.String getDomain(java.lang.String host)
          Given a fully qualified hostname, extract the domain name.
 java.lang.Object getHeader(java.lang.String name)
          Return a response header.
 java.lang.String getSingleHeader(java.lang.String name)
          Return a response header, expected to have a single value.
 int getStatus()
          Return the last response status code.
static void main(java.lang.String[] args)
           
 int post(java.lang.String path, java.util.Map data)
          Do a post.
static void println(java.lang.String msg)
           
 int request1(java.lang.String path, boolean post, java.util.Map data)
          Do a request, and handle relocations.
 void reset()
          Called by tests when they want to simulate the effect of killing the browser and starting a new one.
 java.lang.String serializePost(java.util.Map data)
          Format a set of name/value pairs into the post data.
 void setAuthentication(java.lang.String name, java.lang.String password)
           
 void setCookie(HttpClient.Cookie c)
          Add a cookie object.
 void setCookie(java.lang.String domain, java.lang.String name, java.lang.String value)
          Set the value of a cookie.
 void setFollowRedirects(boolean b)
          Control whether we automatically follow redirects.
 void setMaxWait(int milliseconds)
           
 void setSimulateIE(boolean b)
           
 void setTrace(boolean b)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

code_id

public static final java.lang.String code_id
See Also:
Constant Field Values

_MAX_WAIT

public int _MAX_WAIT
The maximum amount of time we'll wait for an HTTP response in milliseconds.

Constructor Detail

HttpClient

public HttpClient()
Method Detail

setTrace

public void setTrace(boolean b)

setSimulateIE

public void setSimulateIE(boolean b)

reset

public void reset()
Called by tests when they want to simulate the effect of killing the browser and starting a new one. Close any open connections, clear cookies, clear basic auth state.


setFollowRedirects

public void setFollowRedirects(boolean b)
Control whether we automatically follow redirects.


clearAuthentication

public void clearAuthentication()

setAuthentication

public void setAuthentication(java.lang.String name,
                              java.lang.String password)

encryptCredentials

public java.lang.String encryptCredentials(java.lang.String name,
                                           java.lang.String pass)

getStatus

public int getStatus()
Return the last response status code.


getBodyBytes

public byte[] getBodyBytes()
Return the last response body.


getBody

public java.lang.String getBody()
Return the last response body as a string.


getHeader

public java.lang.Object getHeader(java.lang.String name)
Return a response header. The returned object may be either a String or a List.


dumpHeaders

public void dumpHeaders()
Dump all headers.


getSingleHeader

public java.lang.String getSingleHeader(java.lang.String name)
Return a response header, expected to have a single value.


get

public int get(java.lang.String path)
        throws java.io.IOException,
               WavesetException
Do a get. Returns the status code.

Throws:
java.io.IOException
WavesetException

post

public int post(java.lang.String path,
                java.util.Map data)
         throws java.io.IOException,
                WavesetException
Do a post. Returns the status code.

Throws:
java.io.IOException
WavesetException

request1

public int request1(java.lang.String path,
                    boolean post,
                    java.util.Map data)
             throws java.io.IOException,
                    WavesetException
Do a request, and handle relocations.

Throws:
java.io.IOException
WavesetException

getDomain

public java.lang.String getDomain(java.lang.String host)
Given a fully qualified hostname, extract the domain name. Not sure how smart we need to be here, assume we'll get the last two items in the list, e.g. foo.test.waveset.com results in .waveset.com


serializePost

public java.lang.String serializePost(java.util.Map data)
Format a set of name/value pairs into the post data.


getCookies

public java.util.Map getCookies(java.lang.String domain)
Get all the cookies in a domain.


getCookieObject

public HttpClient.Cookie getCookieObject(java.lang.String domain,
                                         java.lang.String name)
Obtain a cookie object.


setCookie

public void setCookie(HttpClient.Cookie c)
Add a cookie object.


getCookie

public java.lang.String getCookie(java.lang.String domain,
                                  java.lang.String name)
Obtain a cookie value


setCookie

public void setCookie(java.lang.String domain,
                      java.lang.String name,
                      java.lang.String value)
Set the value of a cookie.


clearCookies

public void clearCookies()
Clear all cookies.


clearCookies

public void clearCookies(java.lang.String domain)
Clear all cookies for a domain.


clearSessionCookies

public void clearSessionCookies()
Clear all session cookies.


clearSessionCookies

public void clearSessionCookies(java.lang.String domain)
Clear all session cookies for a domain.


dumpCookies

public void dumpCookies()
Debug method to dump all cookies.


setMaxWait

public void setMaxWait(int milliseconds)

println

public static void println(java.lang.String msg)

main

public static void main(java.lang.String[] args)