-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