1

私のアプリケーションはインターネットにアクセスして、指定されたリンクからファイルをダウンロードします。プロキシ設定を使用する研究所のインターネット接続を使用しています。

私のアプリケーションがインターネットからファイルをダウンロードできるようにするには、インターネット ブラウザを開き、接続用のユーザー名とパスワードを入力し、ブラウザを実行し続ける必要があります。そうしないと、アプリケーションは完全なファイルをダウンロードできません。これらのことを行うと、アプリケーションは正常に実行され、目的の場所にファイルが作成されますが、ファイル サイズがゼロと表示されます。これは、インターネットに直接接続できない可能性が高いためです。

インターネットに接続できない場合、アプリケーションにユーザー名とパスワードを要求するダイアログを表示させるにはどうすればよいですか。

ありがとう :-)

4

2 に答える 2

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クエリで言及されています(インターネットで実際に接続してダウンロードできるようにするために認証が必要な場合)....情報が困っている人に役立つことを願っています.

于 2012-06-06T11:56:37.077 に答える
0

ファイル転送が行われる接続オブジェクトを作成するときは、プロキシが期待する認証資格情報の形式を使用していることを指定する必要があります。Java for 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
于 2012-05-28T14:25:30.497 に答える