Android从url SingleClientConnManager问题中获取图像

时间:2011-05-11 05:39:38

标签: android bytearray httpresponse http-error

我使用以下代码来获取徽标的图像并将其保存在数据库中。

DefaultHttpClient mHttpClient = new DefaultHttpClient();
HttpGet mHttpGet;
HttpResponse mHttpResponse;
HttpEntity entity;


for (int reportsCount = 0; reportsCount < reportsArr.length; reportsCount++) {



  //Make a request to get our image
  mHttpGet = new HttpGet(reportsArr[reportsCount][1]);
  byte[] categoryLogoArr = null; 
  try {
    mHttpResponse = mHttpClient.execute(mHttpGet);

    if (mHttpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {


       entity = mHttpResponse.getEntity();

       logoArr= EntityUtils.toByteArray(entity);

    }
   } catch (ClientProtocolException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (IOException e) {
   // TODO Auto-generated catch block
    e.printStackTrace();
   }

   long categoryID = dataHelper.addCategory(reportsArr[reportsCount][0], categoryLogoArr);
}

第一张图片完美地添加了,但其余的情况下它没有工作并发出以下警告。

WARN/SingleClientConnManager(2389): Invalid use of SingleClientConnManager: connection still allocated.

我的代码有什么问题?要改变什么来解决它?

1 个答案:

答案 0 :(得分:0)

在重用连接之前,您需要使用内容。这可能是Exception using HttpRequest.execute(): Invalid use of SingleClientConnManager: connection still allocated

的副本

我认为即使响应代码不是HttpStatus.SC_OK,也需要使用内容,并且在异常处理程序中。