Oleg, I think you have that backwards :-)
In http 1.0 the end of transmission is indicated by the socket being dropped (in TCP/IP a FIN is sent from the server). Thus you can send dynamic content of unknown length 'unchunked'. It is http/1.1 with its 'keep-alive' concept that has to be more careful. AJ Alexander J Turner Ph.D. www.deployview.com www.nerds-central.blogspot.com www.project-network.com -----Original Message----- From: Oleg Kalnichevski [mailto:[EMAIL PROTECTED] Sent: 13 September 2006 23:13 To: HttpClient User Discussion Cc: [email protected] Subject: TPN POSSIBLE SPAM:Re: chunked http/1.0 [EMAIL PROTECTED] wrote: > Hi ! > > I have a problem testing a server which doesn't support chunked > transfer-encoding. After some digging i found a parameter in > jmeter.properties called httpclient.version that i set to 1.0, > thinking chunked transfer-encoding is not http/1.0. > > I was right but jmeter (or httpclient) seems to be rather > schyzophrenic about this. I receive this exception : > > org.apache.commons.httpclient.ProtocolException: HTTP/1.0 does not > support chunk encoding at > org.apache.commons.httpclient.methods.EntityEnclosingMethod.addContentLengthRequestHeader(EntityEnclosingMethod.java:407) > > > at > org.apache.commons.httpclient.methods.EntityEnclosingMethod.addRequestHeaders(EntityEnclosingMethod.java:370) > > > at > org.apache.commons.httpclient.HttpMethodBase.writeRequestHeaders(HttpMethodBase.java:2036) > > > at > org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1919) > > > at > org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:993) > > at > org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397) > > > at > org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170) > > > at > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396) > > at > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324) > > at > org.apache.jmeter.protocol.http.sampler.SoapSampler.sample(SoapSampler.java:224) > > > at > org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:658) > > > at > org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:647) > > > at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:247) > at java.lang.Thread.run(Thread.java:595) > > > And here are the logs : > > 2006/09/13 18:50:06 DEBUG - jmeter.protocol.http.sampler.HTTPSampler2: > Thread Started > 2006/09/13 18:50:06 DEBUG - jmeter.protocol.http.sampler.SoapSampler: > Start : samplehttp://hp380rd17:9000/services/LoadBalance > 2006/09/13 18:50:06 DEBUG - jmeter.protocol.http.sampler.SoapSampler: > method > 2006/09/13 18:50:06 DEBUG - > org.apache.commons.httpclient.params.DefaultHttpParams: Set parameter > http.useragent = Jakarta Commons-HttpClient/3.0.1 > 2006/09/13 18:50:06 DEBUG - > org.apache.commons.httpclient.params.DefaultHttpParams: Set parameter > http.protocol.version = HTTP/1.1 > 2006/09/13 18:50:06 DEBUG - > org.apache.commons.httpclient.params.DefaultHttpParams: Set parameter > http.connection-manager.class = class > org.apache.commons.httpclient.SimpleHttpConnectionManager > 2006/09/13 18:50:06 DEBUG - > org.apache.commons.httpclient.params.DefaultHttpParams: Set parameter > http.protocol.cookie-policy = rfc2109 > 2006/09/13 18:50:06 DEBUG - > org.apache.commons.httpclient.params.DefaultHttpParams: Set parameter > http.protocol.element-charset = US-ASCII > 2006/09/13 18:50:06 DEBUG - > org.apache.commons.httpclient.params.DefaultHttpParams: Set parameter > http.protocol.content-charset = ISO-8859-1 > 2006/09/13 18:50:06 DEBUG - > org.apache.commons.httpclient.params.DefaultHttpParams: Set parameter > http.method.retry-handler = > [EMAIL PROTECTED] > 2006/09/13 18:50:06 DEBUG - > org.apache.commons.httpclient.params.DefaultHttpParams: Set parameter > http.dateparser.patterns = [EEE, dd MMM yyyy HH:mm:ss zzz, EEEE, > dd-MMM-yy HH:mm:ss zzz, EEE MMM d HH:mm:ss yyyy, EEE, dd-MMM-yyyy > HH:mm:ss z, EEE, dd-MMM-yyyy HH-mm-ss z, EEE, dd MMM yy HH:mm:ss z, > EEE dd-MMM-yyyy HH:mm:ss z, EEE dd > MMM yyyy HH:mm:ss z, EEE dd-MMM-yyyy HH-mm-ss z, EEE dd-MMM-yy > HH:mm:ss z, EEE dd MMM yy HH:mm:ss z, EEE,dd-MMM-yy HH:mm:ss z, > EEE,dd-MMM-yyyy HH:mm:ss z, EEE, dd-MM-yyyy HH:mm:ss z] > 2006/09/13 18:50:06 DEBUG - > org.apache.commons.httpclient.methods.PostMethod: enter > PostMethod.addParameter(String, String) > 2006/09/13 18:50:06 DEBUG - > org.apache.commons.httpclient.methods.EntityEnclosingMethod: enter > EntityEnclosingMethod.clearRequestBody() > 2006/09/13 18:50:06 DEBUG - org.apache.commons.httpclient.HttpClient: > Java version: 1.5.0_06 > 2006/09/13 18:50:06 DEBUG - org.apache.commons.httpclient.HttpClient: > Java vendor: Sun Microsystems Inc. > 2006/09/13 18:50:06 DEBUG - org.apache.commons.httpclient.HttpClient: > Java class path: > /opt/jakarta-jmeter-2.2/bin/ApacheJMeter.jar:/opt/jakarta-jmeter-2.2/lib/Tidy.jar:/opt/jakarta-jmeter-2.2/lib/avalon-framework-4.1.4.jar:/opt/jakarta-jmeter-2.2/lib/batik-awt-util.jar:/opt/jakarta-jmeter-2.2/lib/bsf-2.3.0.jar:/opt/jakarta-jmeter-2.2/lib/bshclient.jar:/opt/jakarta-jmeter-2.2/lib/commons-codec-1.3.jar:/opt/jakarta-jmeter-2.2/lib/commons-collections.jar:/opt/jakarta-jmeter-2.2/lib/commons-httpclient-3.0.1.jar:/opt/jakarta-jmeter-2.2/lib/commons-jexl-1.0.jar:/opt/jakarta-jmeter-2.2/lib/commons-logging-1.1.jar:/opt/jakarta-jmeter-2.2/lib/excalibur-datasource-1.1.1.jar:/opt/jakarta-jmeter-2.2/lib/excalibur-instrument-1.0.jar:/opt/jakarta-jmeter-2.2/lib/excalibur-logger-1.1.jar:/opt/jakarta-jmeter-2.2/lib/excalibur-pool-1.2.jar:/opt/jakarta-jmeter-2.2/lib/htmlparser.jar:/opt/jakarta-jmeter-2.2/lib/htmlparserparser.jar:/opt/jakarta-jmeter-2.2/lib/htmlparserparser16.jar:/opt/jakarta-jmeter-2.2/lib/jCharts-0.7.5.jar:/opt/jakarta-jmeter-2.2/lib/jakarta-oro-2.0.8.jar:/opt/jakarta-jmeter-2.2/lib/jdom-1.0.jar:/opt/jakarta-jmeter-2.2/lib/jorphan.jar:/opt/jakarta-jmeter-2.2/lib/js.jar:/opt/jakarta-jmeter-2.2/lib/junit.jar:/opt/jakarta-jmeter-2.2/lib/logkit-1.2.jar:/opt/jakarta-jmeter-2.2/lib/soap.jar:/opt/jakarta-jmeter-2.2/lib/xalan.jar:/opt/jakarta-jmeter-2.2/lib/xercesImpl.jar:/opt/jakarta-jmeter-2.2/lib/xml-apis.jar:/opt/jakarta-jmeter-2.2/lib/xpp3_min-1.1.3.4.I.jar:/opt/jakarta-jmeter-2.2/lib/xstream-1.1.3.jar:/opt/jakarta-jmeter-2.2/lib/ext/ApacheJMeter_components.jar:/opt/jakarta-jmeter-2.2/lib/ext/ApacheJMeter_core.jar:/opt/jakarta-jmeter-2.2/lib/ext/ApacheJMeter_ftp.jar:/opt/jakarta-jmeter-2.2/lib/ext/ApacheJMeter_functions.jar:/opt/jakarta-jmeter-2.2/lib/ext/ApacheJMeter_http.jar:/opt/jakarta-jmeter-2.2/lib/ext/ApacheJMeter_java.jar:/opt/jakarta-jmeter-2.2/lib/ext/ApacheJMeter_jdbc.jar:/opt/jakarta-jmeter-2.2/lib/ext/ApacheJMeter_jms.jar:/opt/jakarta-jmeter-2.2/lib/ext/ApacheJMeter_junit.jar:/opt/jakarta-jmeter-2.2/lib/ext/ApacheJMeter_ldap.jar:/opt/jakarta-jmeter-2.2/lib/ext/ApacheJMeter_mail.jar:/opt/jakarta-jmeter-2.2/lib/ext/ApacheJMeter_monitors.jar:/opt/jakarta-jmeter-2.2/lib/ext/ApacheJMeter_report.jar:/opt/jakarta-jmeter-2.2/lib/ext/ApacheJMeter_tcp.jar:/opt/jakarta-jmeter-2.2/lib/junit/test.jar > > > 2006/09/13 18:50:06 DEBUG - org.apache.commons.httpclient.HttpClient: > Operating system name: Linux > 2006/09/13 18:50:06 DEBUG - org.apache.commons.httpclient.HttpClient: > Operating system architecture: i386 > 2006/09/13 18:50:06 DEBUG - org.apache.commons.httpclient.HttpClient: > Operating system architecture: i386 > 2006/09/13 18:50:07 DEBUG - org.apache.commons.httpclient.HttpClient: > Operating system version: 2.6.15-26-686 > 2006/09/13 18:50:07 DEBUG - org.apache.commons.httpclient.HttpClient: > SUN 1.5: SUN (DSA key/parameter generation; DSA signing; SHA-1, MD5 > digests; SecureRandom; X.509 certificates; JKS keystore; PKIX > CertPathValidator; PKIX CertPathBuilder; LDAP, Collection CertStores) > 2006/09/13 18:50:07 DEBUG - org.apache.commons.httpclient.HttpClient: > SunRsaSign 1.5: Sun RSA signature provider > 2006/09/13 18:50:07 DEBUG - org.apache.commons.httpclient.HttpClient: > SunJSSE 1.5: Sun JSSE provider(PKCS12, SunX509 key/trust factories, > SSLv3, TLSv1) > 2006/09/13 18:50:07 DEBUG - org.apache.commons.httpclient.HttpClient: > SunJCE 1.5: SunJCE Provider (implements RSA, DES, Triple DES, AES, > Blowfish, ARCFOUR, RC2, PBE, > Diffie-Hellman, HMAC) > 2006/09/13 18:50:07 DEBUG - org.apache.commons.httpclient.HttpClient: > SunJGSS 1.0: Sun (Kerberos v5) > 2006/09/13 18:50:07 DEBUG - org.apache.commons.httpclient.HttpClient: > SunSASL 1.5: Sun SASL provider(implements client mechanisms for: > DIGEST-MD5, GSSAPI, EXTERNAL, PLAIN, CRAM-MD5; server mechanisms for: > DIGEST-MD5, GSSAPI, CRAM-MD5) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.params.DefaultHttpParams: Set parameter > http.protocol.cookie-policy = ignoreCookies > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.params.DefaultHttpParams: Set parameter > http.protocol.version = HTTP/1.0 > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.params.DefaultHttpParams: Set parameter > http.socket.timeout = 0 > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.methods.PostMethod: enter > PostMethod.clearRequestBody() > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.methods.EntityEnclosingMethod: enter > EntityEnclosingMethod.clearRequestBody() > 2006/09/13 18:50:07 DEBUG - org.apache.commons.httpclient.HttpClient: > enter HttpClient.executeMethod(HttpMethod) > 2006/09/13 18:50:07 DEBUG - org.apache.commons.httpclient.HttpClient: > enter HttpClient.executeMethod(HostConfiguration,HttpMethod,HttpState) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpMethodDirector: Attempt number 1 to > process request > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpConnection: enter HttpConnection.open() > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpConnection: Open connection to > server:9000 > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpMethodBase: enter > HttpMethodBase.execute(HttpState, HttpConnection) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpMethodBase: enter > HttpMethodBase.writeRequest(HttpState, HttpConnection) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpMethodBase: enter > HttpMethodBase.writeRequestLine(HttpState, HttpConnection) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpMethodBase: enter > HttpMethodBase.generateRequestLine(HttpConnection, String, String, > String, String) > 2006/09/13 18:50:07 DEBUG - httpclient.wire.header: >> "POST > /services/LoadBalance HTTP/1.0[\r][\n]" > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpConnection: enter > HttpConnection.print(String) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpConnection: enter > HttpConnection.write(byte[]) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpConnection: enter > HttpConnection.write(byte[], int, int) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpMethodBase: enter > HttpMethodBase.writeRequestHeaders(HttpState,HttpConnection) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.methods.EntityEnclosingMethod: enter > EntityEnclosingMethod.addRequestHeaders(HttpState, HttpConnection) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.methods.ExpectContinueMethod: enter > ExpectContinueMethod.addRequestHeaders(HttpState, HttpConnection) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpMethodBase: enter > HttpMethodBase.addRequestHeaders(HttpState, HttpConnection) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpMethodBase: enter > HttpMethodBase.addUserAgentRequestHeaders(HttpState, HttpConnection) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpMethodBase: enter > HttpMethodBase.addHostRequestHeader(HttpState, HttpConnection) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpMethodBase: Adding Host request header > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpMethodBase: enter > HttpMethodBase.addCookieRequestHeader(HttpState, HttpConnection) > 2006/09/13 18:50:07 DEBUG - org.apache.commons.httpclient.HttpState: > enter HttpState.getCookies() > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpMethodBase: enter > HttpMethodBase.addProxyConnectionHeader(HttpState, HttpConnection) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.methods.EntityEnclosingMethod: enter > EntityEnclosingMethod.addContentLengthRequestHeader(HttpState, > HttpConnection) > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.methods.EntityEnclosingMethod: enter > EntityEnclosingMethod.getRequestContentLength() > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.methods.PostMethod: enter > PostMethod.hasRequestContent() > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.methods.EntityEnclosingMethod: enter > EntityEnclosingMethod.hasRequestContent() > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpMethodDirector: Closing the connection. > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpConnection: enter > HttpConnection.close() > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpConnection: enter > HttpConnection.closeSockedAndStreams() > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpConnection: enter > HttpConnection.releaseConnection() > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpConnection: Releasing connection > back to connection manager. > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpConnection: enter > HttpConnection.releaseConnection() > 2006/09/13 18:50:07 DEBUG - > org.apache.commons.httpclient.HttpConnection: Releasing connection > back to connection manager. > > > Version in use : > > jmeter : 2.2 > http-client : 3.0.1 > jre : sun 1.5.0_06-b05 > > It looks like a problem with the content length ... What do you think > about this ? > > Antoine > Antoine, HttpClient has no other choice but to throw a protocol exception if the content length of the request entity is not known and HTTP/1.0 is being used. Request entities that generate content on the fly cannot be used with HTTP/1.0. Hope this helps Oleg > > > --------------------------------------------------------------------- > 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] -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.405 / Virus Database: 268.12.3/447 - Release Date: 13/09/2006 -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.405 / Virus Database: 268.12.3/447 - Release Date: 13/09/2006 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

