hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "jason zhang (Created) (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HTTPCLIENT-1174) when using HttpResponse's API getEntity return HttpEntity instance to get content length, HttpEntity's function API getContentLength() CAN NOT return correct content length.
Date Thu, 15 Mar 2012 01:16:41 GMT
when using HttpResponse's API getEntity return HttpEntity instance to get content length, HttpEntity's
function API  getContentLength() CAN NOT return correct content length.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: HTTPCLIENT-1174
                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1174
             Project: HttpComponents HttpClient
          Issue Type: Bug
          Components: HttpClient
    Affects Versions: 4.1.3
         Environment: window xp sp3,java 7.0, Eclipse Java EE IDE for Web Developers.Version:
Indigo Service Release 1,Build id: 20110916-0149
            Reporter: jason zhang


when using HttpClient get xml data from google API, the response's content length is 6400,
but HttpEntity's function getContentLength() is -1. sample test is bellow.
============
import java.io.InputStream;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;


public class testGetContentLength {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		HttpClient httpclient = new DefaultHttpClient();
		HttpGet httpget = new HttpGet("http://maps.googleapis.com/maps/api/directions/xml?origin=Boston,MA&destination=Concord,MA&waypoints=Charlestown,MA%7CLexington,MA&sensor=false");
		try{
		HttpResponse response = httpclient.execute(httpget);
		HttpEntity entity = response.getEntity();
		if (entity != null) {
		long len = entity.getContentLength();
		System.out.println("length:="+len);
		if (len != -1) {
		System.out.println(EntityUtils.toString(entity));
		} else {
		// Stream content out
			InputStream instream = entity.getContent();
			int l;
			byte[] tmp = new byte[512];
			while ((l = instream.read(tmp)) != -1) {
				System.out.println(new String(tmp,0,l));
				
			}
//			
//			BufferedInputStream in = new BufferedInputStream(instream);
//			StringBuffer buffer = new StringBuffer();
//			while((l=in.read(tmp))!=-1){
//				buffer.append(new String(tmp,0,l));
//			}
//			System.out.println(buffer.toString());
		}
		}
		}catch(Exception e){
			e.printStackTrace();
		}
	}

}


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message