*Thanks to Jeff* for getting me on my way to figuring this issue out. I took
two wireshark logs to see what the differences are between the automated
login and the manual login just as he suggested. The text of the wireshark
logs are as follows.

The Manual Login:
-----------------------------------------------------------------------------------------------------------------------------

POST /div/login HTTP/1.1
Host: my.website.com:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)
AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.78 Safari/532.5
Referer: http://my.website.com:8080/div/login
Content-Length: 38
Cache-Control: max-age=0
Origin: http://my.website.com:8080
Content-Type: application/x-www-form-urlencoded
Accept:
application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate,sdch
Cookie: JSESSIONID=AF810830BBC3D8869D70178E73239217
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

txtUserName=myUserName&txtPassword=myPassWordHTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Location: http://my.website.com:8080/div/
Content-Length: 0
Date: Fri, 12 Feb 2010 01:52:30 GMT

------------------------------------------------------------------------------------------------------------------------------------
The Automated Login
-----------------------------------------------------------------------------------------------------------------------------------

POST /div/login.jsp?txtUserName=myUserName&txtPassword=myPassWord HTTP/1.1
Content-Length: 0
Host: my.website.com:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.0.1 (java 1.5)

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=9563FDBAA69961D49B607C63383C5F7A; Path=/div
Cache-Control: no-cache, must-revalidate
Expires: 0
Date: Fri, 12 Feb 2010 17:09:24 GMT
Content-Type: text/xml;charset=UTF-8
Content-Length: 3648

----------------------------------------------------------------------------------------------------

As one can clearly see the Manual Login contains far much more information
in the Packet. I have no idea how to include this information in the request
that I am sending from the http-client class I made. I looked for methods
with auto complete that would allow me to add this information however I
found nothing specific. Can anyone get me started on the road to adding this
information to my automated login's packet.

Originally I attached my source code in a zip file to make the email more
readable however this mail list doesn't seem to allow attachments so here is
the source code in text format.

Sorry in advance if it is ugly or hard to read.

First the Java class
-----------------------------------------------------------------------------------'

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIUtils;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HTTP;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;

/**
 * WebUtils This class contains basic Web Utilities used for logging into
and manipulating data
 * on a requested website.
 *
 * @author ME
 */
public class WebUtils {


        /**
         * getPageSource This Method will return the source code of the
requested page when given the
         *   following parameters
         *
         * @return pageSource The source code of the requested page
         */
        public String getPageSource(){

                  String pageSource = "";

                  DefaultHttpClient httpclient = new DefaultHttpClient();
                  HttpContext localContext = new BasicHttpContext();


                  List<NameValuePair> qparams = new
ArrayList<NameValuePair>();
                  qparams.add(new BasicNameValuePair("txtUserName",
"myusername"));
                  qparams.add(new BasicNameValuePair("txtPassword",
"mypassword"));

                  URI uri;
                try {
                        uri = URIUtils.createURI("http", "my.website.com",
8080, "/div/login",
                              URLEncodedUtils.format(qparams, "UTF-8"),
null);

                        HttpPost httppost = new HttpPost(uri);
                        HttpResponse response = httpclient.execute(httppost,
localContext);
             HttpEntity entity = response.getEntity();

             List<Cookie> cookies =
httpclient.getCookieStore().getCookies();

                if (cookies.isEmpty()) {
                    System.out.println("None");
                } else {
                    for (int i = 0; i < cookies.size(); i++) {
                        System.out.println(i +" - " +
cookies.get(i).toString());
                    }
                }

            if (entity != null) {
               long len = entity.getContentLength();
               if (len != -1) {
               pageSource = EntityUtils.toString(entity);

               } else {
               pageSource = "";
               }
            }

                } catch (URISyntaxException e) {
                        e.printStackTrace();
                } catch (ClientProtocolException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                return pageSource;
          }
}

The Form
------------------------------------------------------------------------------------------------------

<div class="loginPanel">
    <div class="container">
        <div class="title">Login</div>
        <form id="loginForm" class="loginForm" method="POST"
action="/div/login">
            <font class="portlet-msg-error"
                 style="font-weight: bold; font-size: 10px; color:#FF0000;
text-align: center;"></font>
            <table>
                <tr>
                    <td class="label">USERNAME:</td>
                    <td><input
                            value=""
                            class="edit"
                            id="txtUsernameLogin"
                            name="txtUserName"
                            type="text"/></td>
                </tr>
                <tr>
                    <td class="label">PASSWORD:</td>
                    <td><input
                            value=""
                            class="edit"
                            name="txtPassword"
                            type="password"/></td>
                </tr>
                <tr>
                    <td colspan="2" align="center">
                        <input type="checkbox" name="txtRemember"
value="true" align="middle"/>
                        Remember me on this computer
                    </td>
                </tr>
                <tr>
                    <td></td>
                    <td class=""><input type="submit"
                                        class="submit"
                                        value="Login"
                                        alt="Login"/></td>
                </tr>
            </table>
        </form>
    </div>
</div>

Any help will be greatly appreciated.

Thanks,

Robert

Reply via email to