Android URLConnection работает только в WiFi, не с 3g

#android #3g #urlconnection #wifi

#Android #3g #urlconnection #Wi-Fi

Вопрос:

Я написал приложение, которое использует URLConnection для получения файла .html. Через WiFi все работает нормально. Но через 3g файл возвращается некорректно. Когда я пытаюсь получить доступ к веб-сайту через браузер, он работает нормально. У кого-нибудь есть предложения?

Обновить: Вот мой код:

 URL downloadUrl;
URLConnection downloadConnection;
InputStream inputStream;
byte[] inputBytes;
String[] output;
private void downloadSource(String pUrl)
{

    try
    {
        downloadUrl = new URL(pUrl);

        downloadConnection = downloadUrl.openConnection();
        downloadConnection.setConnectTimeout(10000);
        downloadConnection.setReadTimeout(10000);


        inputStream = downloadConnection.getInputStream();
        ByteArrayOutputStream result = new ByteArrayOutputStream();

        inputBytes = new byte[10000];
        int i;
        int i1 = 0;
        while ((i = inputStream.read(inputBytes)) > 0)
        {
            result.write(inputBytes, 0, i);
            result.flush();
            i1  = i;
        }
        result.flush();
        result.close();
        output = result.toString().split("n"); 

    }
    catch (Exception e)
    {
        e.printStackTrace();
    }


}
  

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

1. не могли бы вы, пожалуйста, предоставить код? Также приложите файл журнала, если это возможно.

2. Я добавил это к вопросу. Файл журнала не содержит ничего для этого.

3. можете ли вы выполнить пинг URL-адреса в сети 3G?

4. Да, я могу пропинговать его без каких-либо проблем.

5. Я только что заметил, что некоторая часть документа загружена, но она не содержит символов новой строки. Итак, все записывается в output[0]. Но он записывает в него только около 4000 символов.

Ответ №1:

Возможно, немного поздновато для ответа, но у меня была та же проблема, с Wifi загруженный html имел другие пробелы, чем тот, который был загружен с 3G.

Я решил это, удалив User-Agent в соединении:

 URLConnection conn = url.openConnection();  
conn.setRequestProperty("User-Agent","");
  

Я надеюсь, что это кому-то поможет!