Невозможно скачать файл из интернета через прокси

1

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

Чтобы мое приложение могло загружать файл из Интернета, мне нужно открыть свой интернет-браузер, указать имя пользователя и пароль для подключения и сохранить браузер, только тогда мое приложение сможет загрузить полный файл, если я не сделайте это, мое приложение работает нормально и создает файл в нужном месте, но показывает размер файла равным нулю, что, скорее всего, связано с тем, что он не может напрямую подключиться к Интернету.

Как я могу сделать свое приложение, чтобы показать мне диалог с просьбой указать имя пользователя и пароль для подключения к Интернету, если он неспособен.

Благодаря :-)

Теги:
proxy
download

2 ответа

0
Лучший ответ

Когда вы создаете объект соединения, через который будет осуществляться передача файла, вы должны указать, что используете любую форму учетных данных, которые ожидает прокси-сервер. Я не знаю, что вы будете делать в Java для Android, но в.NET я это делаю:

  LogHandler.Log(LogHandler.LogType.Debug, "Configure proxy credentials");

  // Proxy address and port
  ec2Config.ProxyHost = ConfigurationManager.AppSettings["LocalProxyHost"];
  ec2Config.ProxyPort = Convert.ToInt32(ConfigurationManager.AppSettings["LocalProxyPort"]);

  // Create a dummy webrequest so we can set proxy credentials (to stop the proxy spitting 407s at us)
  HttpWebRequest dummyRequest = (HttpWebRequest)WebRequest.Create(ec2Config.ServiceURL);
  dummyRequest.Proxy.Credentials = CredentialCache.DefaultCredentials;

  #pragma warning disable 168
  HttpWebResponse myHttpWebResponse = (HttpWebResponse)dummyRequest.GetResponse();
  #pragma warning restore 168
  • 0
    извините, но я не очень понимаю, как реализовать это в Java для моего приложения ... спасибо за ваше время ... я действительно ценю это :-)
  • 0
    спасибо за ваши усилия :-D .... хотя я не мог использовать это в моем приложении!
0

Я разработал эту логику, она требует много работы, но она помогает мне определить, есть ли какая-то другая проблема, например прокси-сервер или другой, поскольку обычный менеджер подключения к Интернету не может обнаружить, есть ли требование для аутентификации или нет.

 final ConnectivityManager conMgr =  (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
  final NetworkInfo activeNetwork = conMgr.getActiveNetworkInfo();

            if (activeNetwork != null && activeNetwork.getState() == NetworkInfo.State.CONNECTED) {

                            //Do what ever you wish to do

                            } else {
                                  // Display message internet connection not available
                                  }

Вышеприведенный код дает информацию о том, доступно ли подключение к Интернету или нет, но он не указывает, требует ли интернет-соединение аутентификацию, поэтому после проверки вышеуказанного условия я пытаюсь получить доступ к ссылке для загрузки, а затем использовать эту логику.

Используемая мной логика упоминается в этом запросе stackoverflow (если интернет требует аутентификации для фактического подключения, чтобы иметь возможность скачивать?).... надеюсь, что информация помогает нуждающимся.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню