Android Загружает Zip из Api и сохраняет на SD-карте

#android #file #download #zip

#Android #файл #Скачать #zip

Вопрос:

Я работаю над API, который возвращает мне zip-файл, содержащий несколько XML-файлов, которые я должен проанализировать по отдельности после извлечения zip-файла.

Вот ссылка для этого (для загрузки zip-файла) :

http://clinicaltrials.gov/ct2/results?term=amp;recr=amp;rslt=amp;type=amp;cond=amp;intr=amp;outc=amp;lead=amp;spons=amp;id=amp;state1=amp;cntry1=amp;state2=amp;cntry2=amp;state3=amp;cntry3=amp;locn=amp;gndr=Femaleamp;age=0amp;rcv_s=amp;rcv_e=amp;lup_s=amp;lup_e=studyxml=true

Вот мой текущий код для сохранения zip-файла на sdcard:

 File root = Environment.getExternalStorageDirectory();
String url= "http://clinicaltrials.gov/ct2/results?term=amp;recr=amp;rslt=amp;type=amp;cond=amp;intr=amp;outc=amp;lead=amp;spons=amp;id=amp;state1=amp;cntry1=amp;state2=amp;cntry2=amp;state3=amp;cntry3=amp;locn=amp;gndr=Femaleamp;age=0amp;rcv_s=amp;rcv_e=amp;lup_s=amp;lup_e=xml=true";


try {

    HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
    conn.setDoInput(true);
    conn.setConnectTimeout(10000); // timeout 10 secs
    conn.connect();
    InputStream input = conn.getInputStream();

    FileOutputStream fOut = new FileOutputStream(new File(root, "new.zip"));
    int byteCount = 0;
    byte[] buffer = new byte[4096];
    int bytesRead = -1;
    while ((bytesRead = input.read(buffer)) != -1) {

        fOut.write(buffer, 0, bytesRead);
        byteCount  = bytesRead;

    }
    fOut.flush();
    fOut.close();

} catch (Exception e) {

    e.printStackTrace();

}
  

Проблема:
New.zip Файл создается на sdcard, но, похоже, ничего не загружается, также размер файла равен 0 кб.
Правильный ли мой код, или я должен использовать что-то другое для обработки zip-файлов.

Правка решена :

Мне очень жаль, что ссылка на api недействительна… это должно быть

http://clinicaltrials.gov/ct2/results?term=amp;recr=amp;rslt=amp;type=amp;cond=amp;intr=amp;outc=amp;lead=amp;spons=amp;id=amp;state1=amp;cntry1=amp;state2=amp;cntry2=amp;state3=amp;cntry3=amp;locn=amp;gndr=Femaleamp;age=0amp;rcv_s=amp;rcv_e=amp;lup_s=amp;lup_e=amp;studyxml=true

amp; требуется перед studtxml..

Спасибо за каждый 1 для быстрого ответа..

Комментарии:

1. Содержит ли ваш URL-адрес zip-файла какой-либо пробел?

2. Находите ли вы какие-либо исключения в logcat?

Ответ №1:

Что-то не так либо в вашем URL-адресе zip-файла, либо в размере zip-файла (размер 0 байт), потому что, если мы загрузим этот zip-файл (с указанного вами URL-адреса) из веб-браузера, тогда он также будет загружен с размером 0 байт.

URL-адрес загруженного zip-файла.

Ответ №2:

Комментарии:

1. Да, похоже, это проблема, я проверю это как можно скорее, я предполагаю, что предоставленная мне ссылка на api неверна. Спасибо За быстрый ответ, парень. @user370305