-1

我似乎收到了损坏的文件,我需要知道这是否有可能,并确保我处理得当。

我有一个可以下载大量背靠背音乐文件的应用程序。如果使用以下方法下载时,连接中突然失去连接会发生什么?我会发现异常吗?还是我会返回一半完成(损坏)的数据?我需要确保我没有试图保存不完整的数据。

    public static InputStream getHTTPRequest(HttpGet getRequest, HttpParams params)
    {
        final String TAG = "getHTTPRequest";

        if (params != null)
        {
            getRequest.setParams(params);
        }

        DefaultHttpClient client = new DefaultHttpClient();

        if(getRequest == null)
        {
            Log.d(TAG, "The HttpGet param passed in was null, returning null");
            return null;
        }

        try {

            HttpResponse getResponse = client.execute(getRequest);
            final int statusCode = getResponse.getStatusLine().getStatusCode();

            if (statusCode != HttpStatus.SC_OK) {
                Log.d(TAG, "status not ok");
                Log.d(TAG, "status = " + Integer.toString(statusCode));
                Log.d(TAG, "url = " + getRequest.getURI().toString());
                return null;
            }

            HttpEntity getResponseEntity = getResponse.getEntity();
            return getResponseEntity.getContent();

        } catch (IOException e) {
            Log.d(TAG, "IOException: getRequest.abort");
            getRequest.abort();
        }

        return null;
    }
4

1 回答 1

0

在执行 IO 操作期间可能会抛出几个异常,您应该优雅地处理它们这里是由 IOException http://developer.android.com/reference/java/io/IOException.html扩展的异常的完整列表

您不需要处理所有这些,但其中很少,您可以删除您的文件,以防下载损坏的文件。

于 2013-05-16T05:59:50.210 回答