2009-07-05 45 views
2
HttpGet httpget = new HttpGet("http://www.google.com/"); 

    System.out.println("executing request " + httpget.getURI()); 

    // Create a response handler 
    ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
    String responseBody = httpclient.execute(httpget, responseHandler); 

這將得到responseBody作爲「字符串」,如何獲得btye []與httpclient.execute(..)?我想得到byte []的原因是因爲我想寫入其他輸出流httpclient 4如何獲得字節

回答

2
public byte[] executeBinary(URI uri) throws IOException, ClientProtocolException { 
    HttpGet httpget = new HttpGet(uri); 
    HttpResponse response = httpclient.execute(httpget); 
    HttpEntity entity = response.getEntity(); 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    entity.writeTo(baos); 
    return baos.toByteArray(); 
} 
+0

是否精細離開BAOS不是封閉在這裏,否則就要由BAOS明確地將其關閉。關() ? – 2017-03-28 18:20:20

0

您可以使用responseBody.getBytes()來獲取byte []。

+0

這似乎創造一個字符集轉換的問題 – 2015-03-31 14:22:12

0

嘗試HttpResponse.getEntity()的writeTo(OutputStream中)