Juan,
Usually HttpClient reports 'unable to find line starting with "HTTP"' when the target 
server drops the connection without returning any response. This can happen, for 
instance, if the server is being under heavy load. 

(1) If you have access to the target server, examine the server logs to see why the 
connection was dropped. Fixing the problem on the server side would be the best

(2) Another possible solution to this problem _may_ be to retry the request, provided 
that the POST methods your code is supposed to execute are idempotent. If the server 
application, however, has been designed in a way that it may receive a request, parse 
it, change the application state (by committing some data to the data store, for 
instance) and then simply drop the connection without giving any kind of response back 
to the client, you are in <strong>BIG</strong> trouble, as simply retrying the same 
POST method case cause data inconsistency problems. So, the best thing to do is to get 
in touch with the server guys and find out if it is safe to retry POST methods.

Hope this clarifies things a little

Oleg



-----Original Message-----
From: Juan Pedro López Sáez [mailto:[EMAIL PROTECTED]
Sent: Wednesday, June 02, 2004 17:18
To: [EMAIL PROTECTED]
Subject: unable to find line starting with "HTTP"


Hi,

I've been searching in the archive list looking for something related to
my "unable to find line starting with HTTP". 

There are lots of comments about it, but they all seem to be unuseful
for me.

Currently I'm using 2.0-rc3 version. My HTTP client is very simple.
Below you can see everything I do. That code is executed everytime I
need to send new data to the HTTP server.

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

HttpClient client= new HttpClient();
client.setStrictMode(true);
client.setTimeout(120000); 
client.setConnectionTimeout(10000); 

PostMethod post = new PostMethod(currentURL);
post.setRequestContentLength(XMLRequest.length());
post.setRequestBody(XMLRequest);
post.setRequestHeader("Content-type", "text/xml; charset=ISO-8859-1");
post.addRequestHeader("Connection", "close");

String response;

try{
httpStatus = client.executeMethod(post);
response = post.getResponseBodyAsString();
}
catch (HttpException e) {
log.fatal("IOException in client.executeMethod( post )",e);
throw e;
}
catch(IOException e){ 
log.fatal("IOException in client.executeMethod( post )",e);
throw e;
}
finally {
post.releaseConnection();
}

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

I'm getting the exception in the HttpClient.excetuteMethod line. The
exception happens from time to time, is not quite common but I don't
know what to do with it.  

The exception stack trace is the following:

org.apache.commons.httpclient.HttpRecoverableException:
org.apache.commons.httpclient.HttpRecoverableException: Error in parsing
the status  line from the response: unable to find line starting with
"HTTP"
at
org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1965)
at
org.apache.commons.httpclient.HttpMethodBase.processRequest(HttpMethodBase.java:2659)
at
org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1093)
at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:674)
at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:529)

I would apreciate any help.

Thank you very much

Juan Pedro López




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


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

Reply via email to