0

HTTPS URL Windows 8 ストア アプリに基本的な http 認証を使用するにはどうすればよいですか。Visual Studio 2012、C#、および XAML を使用しています。

HTTPS URL を使用する際に注意すべき点はありますか?

私はこれらの次の方法を試しました:

#1 : ###コードが更新されました - 最終的な実行中のソリューション

        private async void HttpClientCall(object sender, RoutedEventArgs e)
    {

        System.Diagnostics.Debug.WriteLine(this.GetType().Name + ": HTTPCLientCall entered");

        //System.Diagnostics.Debug.WriteLine("NetworkConnectivityLevel.InternetAccess: " + NetworkConnectivityLevel.InternetAccess);

        //use this, for checking the network connectivity
        System.Diagnostics.Debug.WriteLine("GetIsNetworkAvailable: " + System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable());

        //var msg = new Windows.UI.Popups.MessageDialog("GetIsNetworkAvailable: " + System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable());
        //msg.ShowAsync();


        HttpClient httpClient = new HttpClient();


        // Assign the authentication headers
        httpClient.DefaultRequestHeaders.Authorization = CreateBasicHeader("username", "password");
        System.Diagnostics.Debug.WriteLine("httpClient.DefaultRequestHeaders.Authorization: " + httpClient.DefaultRequestHeaders.Authorization);


        // Call out to the site
        HttpResponseMessage response = await httpClient.GetAsync("https://URLHere");
        System.Diagnostics.Debug.WriteLine("response: " + response);
        string responseAsString = await response.Content.ReadAsStringAsync();
        System.Diagnostics.Debug.WriteLine("response string:" + responseAsString);

        //WebViewP.Source = new Uri("https://URLHere");
    }




    public AuthenticationHeaderValue CreateBasicHeader(string username, string password)
    {
        byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(username + ":" + password);

        String logindata = (username + ":" + password);
        System.Diagnostics.Debug.WriteLine("AuthenticationHeaderValue: " + new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray)));

        return new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
    }

認証が必要な HTTPS Web サイトを表示したいだけです。Visual Studio から警告が表示され、動作が停止します: 要求の送信中にエラーが発生しました。

「mscorlib.dll で「System.Net.Http.HttpRequestException」タイプの初回例外が発生しました」

4

1 に答える 1

1

基本認証を実行するためのより簡単な方法があります。

  • 最初にHttpClientHandlerインスタンスを作成します。
  • 必要に応じて、HttpClientHandler インスタンスのCredentialsプロパティを設定できます。
  • HttpMessageHandler インスタンスを受け入れるコンストラクターを使用して HttpClient を初期化します。
于 2013-10-22T11:36:41.740 に答える