Как скачать большой файл с помощью google-api-java-client на Android? - PullRequest
1 голос
/ 30 марта 2012

В последнее время я пытаюсь использовать библиотеку google-api-java-client для доступа к документу Google. Я могу использовать эту библиотеку для получения списка, создания новых документов и успешного обновления. Однако, когда я хочу загрузить большой файл (> 10 МБ) из Google Document, это вызывает OutOfMemoryError.

03-30 17:57:10.650: E/AndroidRuntime(11022): java.lang.OutOfMemoryError
03-30 17:57:10.650: E/AndroidRuntime(11022):    at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:91)
03-30 17:57:10.650: E/AndroidRuntime(11022):    at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201)
03-30 17:57:10.650: E/AndroidRuntime(11022):    at com.google.api.client.http.AbstractInputStreamContent.copy(AbstractInputStreamContent.java:213)
03-30 17:57:10.650: E/AndroidRuntime(11022):    at com.google.api.client.http.AbstractInputStreamContent.copy(AbstractInputStreamContent.java:179)
03-30 17:57:10.650: E/AndroidRuntime(11022):    at com.google.api.client.http.HttpResponse.getContent(HttpResponse.java:384)

Это мой код:

try {
    ...
    HttpRequest request = getRequestFactory().buildGetRequest(link);
    HttpResponse response = request.execute();
    InputStream is = response.getContent();
    ...
} catch (IOException e) {
    e.printStackTrace();
}

Код ответа - 200, и он может успешно работать с небольшими файлами. Есть ли способ загрузить большой файл с помощью google-api-java-client?

1 Ответ

0 голосов
/ 07 апреля 2012

Спасибо за сообщение о проблеме! Похоже, ошибка для меня. Подал это здесь:

http://code.google.com/p/google-http-java-client/issues/detail?id=82

В качестве обходного пути отключите ведение журнала для этого запроса следующим образом:

request.setContentLoggingLimit(0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...