Re: org.apache.http.ProtocolException: Invalid header: HTTP/1.1 200 OK
Hi olegk, Thank you very much, your second link did the trick. Best regards, rpinto olegk wrote: On Tue, 2012-05-29 at 16:55 +0100, Sam Crawford wrote: As an example, take a look at the bottom of http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/StreamProxy.java (specifically IcyLineParser and MyClientConnection). MyClientConnection shows you how to override createResponseParser. The unknown part for me is whether or not you can extend BasicLineParser (like the author did for IcyLineParser) and get away with just overriding parseHeader. This would require handling the special case of the duplicate status line by returning null or a dummy Header value in its place. Both are ugly, but then you're already dealing with a broken web server, so I suspect such concerns are long since gone! I'm not able to test it myself right now, but hopefully the above will provide you the necessary guidance to give it a try yourself. In the meantime someone else may have a better suggestion than me. Thanks, Sam This might also be of help http://hc.apache.org/httpcomponents-client-ga/tutorial/html/advanced.html#d5e1339 Oleg On 29 May 2012 14:34, rpinto santospinto.raf...@gmail.com wrote: Hi Sam, thank you very much for your quick response. Is there any example/tutorial for how should hi implement createResponseParser? Thanks in advance, Best regards, RPinto Sam Crawford wrote: The issue will be caused by the web server replying with two HTTP/1.1 200 OK headers. The web server you're connecting to is faulty. As a workaround, I would suggest subclassing DefaultHttpClientConnection and overriding createResponseParser. See here for more details: http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/impl/AbstractHttpClientConnection.html#createResponseParser(org.apache.http.io.SessionInputBuffer, org.apache.http.HttpResponseFactory, org.apache.http.params.HttpParams) Hope this helps, Sam On 29 May 2012 14:10, rpinto santospinto.raf...@gmail.com wrote: Hi there, I'm using httpclient (4.1 and also 4.2) and it throws ProtocolException: Invalid header: HTTP/1.1 200 OK, and does not allow me to access de webcontent. Here is the stacktrace : Caused by: org.apache.http.ProtocolException: Invalid header: HTTP/1.1 200 OK at org.apache.http.impl.io.AbstractMessageParser.parseHeaders(AbstractMessageParser.java:226) at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261) at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:289) at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:252) at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:191) at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:300) at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:127) at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:713) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:518) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) And here are the Headers from the GET request: HTTP/1.1 200 OK Date: Fri, 09 Jan 1970 00:12:58 GMT Server: Boa/0.94.14rc18-ipcam Accept-Ranges: bytes Connection: close HTTP/1.1 200 OK Content-Type: multipart/x-mixed-replace;boundary=IPCAMJPG The problem must be Bold line because it does not respect HTTP/1.1. Is there any workaround or any fix? Thanks in advance, Best regards, Rafael Pinto -- View this message in context: http://old.nabble.com/org.apache.http.ProtocolException%3A-Invalid-header%3A-HTTP-1.1-200-OK-tp33924984p33924984.html Sent from the HttpClient-User mailing list archive at Nabble.com. - To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org For additional commands, e-mail: httpclient-users-h...@hc.apache.org - To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org For additional commands, e-mail: httpclient-users-h...@hc.apache.org -- View this message in context: http://old.nabble.com/org.apache.http.ProtocolException%3A-Invalid-header%3A-HTTP-1.1-200-OK-tp33924984p33925126.html Sent from the HttpClient-User mailing list archive at Nabble.com. - To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
Re: org.apache.http.ProtocolException: Invalid header: HTTP/1.1 200 OK
As an example, take a look at the bottom of http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/StreamProxy.java (specifically IcyLineParser and MyClientConnection). MyClientConnection shows you how to override createResponseParser. The unknown part for me is whether or not you can extend BasicLineParser (like the author did for IcyLineParser) and get away with just overriding parseHeader. This would require handling the special case of the duplicate status line by returning null or a dummy Header value in its place. Both are ugly, but then you're already dealing with a broken web server, so I suspect such concerns are long since gone! I'm not able to test it myself right now, but hopefully the above will provide you the necessary guidance to give it a try yourself. In the meantime someone else may have a better suggestion than me. Thanks, Sam On 29 May 2012 14:34, rpinto santospinto.raf...@gmail.com wrote: Hi Sam, thank you very much for your quick response. Is there any example/tutorial for how should hi implement createResponseParser? Thanks in advance, Best regards, RPinto Sam Crawford wrote: The issue will be caused by the web server replying with two HTTP/1.1 200 OK headers. The web server you're connecting to is faulty. As a workaround, I would suggest subclassing DefaultHttpClientConnection and overriding createResponseParser. See here for more details: http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/impl/AbstractHttpClientConnection.html#createResponseParser(org.apache.http.io.SessionInputBuffer, org.apache.http.HttpResponseFactory, org.apache.http.params.HttpParams) Hope this helps, Sam On 29 May 2012 14:10, rpinto santospinto.raf...@gmail.com wrote: Hi there, I'm using httpclient (4.1 and also 4.2) and it throws ProtocolException: Invalid header: HTTP/1.1 200 OK, and does not allow me to access de webcontent. Here is the stacktrace : Caused by: org.apache.http.ProtocolException: Invalid header: HTTP/1.1 200 OK at org.apache.http.impl.io.AbstractMessageParser.parseHeaders(AbstractMessageParser.java:226) at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261) at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:289) at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:252) at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:191) at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:300) at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:127) at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:713) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:518) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) And here are the Headers from the GET request: HTTP/1.1 200 OK Date: Fri, 09 Jan 1970 00:12:58 GMT Server: Boa/0.94.14rc18-ipcam Accept-Ranges: bytes Connection: close HTTP/1.1 200 OK Content-Type: multipart/x-mixed-replace;boundary=IPCAMJPG The problem must be Bold line because it does not respect HTTP/1.1. Is there any workaround or any fix? Thanks in advance, Best regards, Rafael Pinto -- View this message in context: http://old.nabble.com/org.apache.http.ProtocolException%3A-Invalid-header%3A-HTTP-1.1-200-OK-tp33924984p33924984.html Sent from the HttpClient-User mailing list archive at Nabble.com. - To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org For additional commands, e-mail: httpclient-users-h...@hc.apache.org - To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org For additional commands, e-mail: httpclient-users-h...@hc.apache.org -- View this message in context: http://old.nabble.com/org.apache.http.ProtocolException%3A-Invalid-header%3A-HTTP-1.1-200-OK-tp33924984p33925126.html Sent from the HttpClient-User mailing list archive at Nabble.com. - To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org For additional commands, e-mail: httpclient-users-h...@hc.apache.org - To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org For additional commands, e-mail: httpclient-users-h...@hc.apache.org
Re: org.apache.http.ProtocolException: Invalid header: HTTP/1.1 200 OK
On Tue, 2012-05-29 at 16:55 +0100, Sam Crawford wrote: As an example, take a look at the bottom of http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/StreamProxy.java (specifically IcyLineParser and MyClientConnection). MyClientConnection shows you how to override createResponseParser. The unknown part for me is whether or not you can extend BasicLineParser (like the author did for IcyLineParser) and get away with just overriding parseHeader. This would require handling the special case of the duplicate status line by returning null or a dummy Header value in its place. Both are ugly, but then you're already dealing with a broken web server, so I suspect such concerns are long since gone! I'm not able to test it myself right now, but hopefully the above will provide you the necessary guidance to give it a try yourself. In the meantime someone else may have a better suggestion than me. Thanks, Sam This might also be of help http://hc.apache.org/httpcomponents-client-ga/tutorial/html/advanced.html#d5e1339 Oleg On 29 May 2012 14:34, rpinto santospinto.raf...@gmail.com wrote: Hi Sam, thank you very much for your quick response. Is there any example/tutorial for how should hi implement createResponseParser? Thanks in advance, Best regards, RPinto Sam Crawford wrote: The issue will be caused by the web server replying with two HTTP/1.1 200 OK headers. The web server you're connecting to is faulty. As a workaround, I would suggest subclassing DefaultHttpClientConnection and overriding createResponseParser. See here for more details: http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/impl/AbstractHttpClientConnection.html#createResponseParser(org.apache.http.io.SessionInputBuffer, org.apache.http.HttpResponseFactory, org.apache.http.params.HttpParams) Hope this helps, Sam On 29 May 2012 14:10, rpinto santospinto.raf...@gmail.com wrote: Hi there, I'm using httpclient (4.1 and also 4.2) and it throws ProtocolException: Invalid header: HTTP/1.1 200 OK, and does not allow me to access de webcontent. Here is the stacktrace : Caused by: org.apache.http.ProtocolException: Invalid header: HTTP/1.1 200 OK at org.apache.http.impl.io.AbstractMessageParser.parseHeaders(AbstractMessageParser.java:226) at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261) at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:289) at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:252) at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:191) at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:300) at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:127) at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:713) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:518) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) And here are the Headers from the GET request: HTTP/1.1 200 OK Date: Fri, 09 Jan 1970 00:12:58 GMT Server: Boa/0.94.14rc18-ipcam Accept-Ranges: bytes Connection: close HTTP/1.1 200 OK Content-Type: multipart/x-mixed-replace;boundary=IPCAMJPG The problem must be Bold line because it does not respect HTTP/1.1. Is there any workaround or any fix? Thanks in advance, Best regards, Rafael Pinto -- View this message in context: http://old.nabble.com/org.apache.http.ProtocolException%3A-Invalid-header%3A-HTTP-1.1-200-OK-tp33924984p33924984.html Sent from the HttpClient-User mailing list archive at Nabble.com. - To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org For additional commands, e-mail: httpclient-users-h...@hc.apache.org - To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org For additional commands, e-mail: httpclient-users-h...@hc.apache.org -- View this message in context: http://old.nabble.com/org.apache.http.ProtocolException%3A-Invalid-header%3A-HTTP-1.1-200-OK-tp33924984p33925126.html Sent from the HttpClient-User mailing list archive at Nabble.com. - To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org For additional commands, e-mail: httpclient-users-h...@hc.apache.org