Ross,

It looks like you've found a problem where HttpClient does not robustly handle duplicate header values. In general the server should not be sending two "Connection: close" headers. Still, HttpClient should be able to handle it. I've attached a patch to fix this to following bug:

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20569

If you can, please apply this patch and verify that it fixes the problem.

Thanks,

Mike

On Friday, June 6, 2003, at 06:03 PM, <[EMAIL PROTECTED]> wrote:

I have an app that is pulling from about 6 different sites, all work but one
site. I get the following messages:


The Console:

Jun 6, 2003 3:14:34 PM org.apache.commons.httpclient.HttpMethodBase
processRequest INFO: Recoverable exception caught when processing request


Jun 6, 2003 3:14:34 PM org.apache.commons.httpclient.HttpMethodBase
processRequest  WARNING: Recoverable exception caught but
MethodRetryHandler.retryMethod() returned false, rethrowing exception



The exception:

Fri Jun 06 15:14:34 EDT
2003,org.apache.commons.httpclient.HttpRecoverableException: Error in
parsing the status line from the response: unable to find line starting with
"HTTP"




The Results:

Unexpected failure



The Code:

String url = "/jobseeker/jobs/jobfindall.asp";

HttpClient client = new HttpClient();


client.getHostConfiguration().setHost("www.careerbuilder.com",80,"http" );


HttpState httpstate = new HttpState();

client.getState().setCookiePolicy(CookiePolicy.COMPATIBILITY);

Header cjheader = new Header();

String responseBody = null;

org.apache.commons.httpclient.Cookie[] cookies = null;

// jobServlet.tools.writeLog("Initialized CJ Vars.");



client.setConnectionTimeout(30000); //30 seconds

Header[] requestHeaders = new Header[15];

GetMethod get = new GetMethod(url);

get.setFollowRedirects(true);

get.setStrictMode(false);

get.setHttp11(false);

client.getState().setCookiePolicy(CookiePolicy.COMPATIBILITY);

try{

// jobServlet.tools.writeLog("Executing CB Get");

int iResultCode = client.executeMethod(get);

// jobServlet.tools.writeLog("Get Result Code: " + iResultCode);

httpstate = client.getState();

responseBody = get.getResponseBodyAsString();

// jobServlet.tools.writeLog("Getting Cookies and Headers");

cookies = httpstate.getCookies();

requestHeaders = get.getRequestHeaders();

}

catch (HttpException he) {

jobServlet.tools.writeLog("Http error connecting to '" + url +
"'");


jobServlet.tools.writeLog(he.getMessage());

}

catch (IOException ioe){

jobServlet.tools.writeLog("Unable to connect to '" + url + "'");

}

catch (NullPointerException np) {

jobServlet.tools.writeLog("Null Status: " + np.getMessage());

}



Any ideas? I'm using the Beta 2 release. It looks similar to bug 19635,
but it's a different GET so I'm not sure.




Ross Rankin







---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to