12

特定の Web ページの HTML コードを取得しようとしています。正しいユーザー名とパスワードを持っていますが、まだ機能しません。これが私のコードです。

private void buttondownloadfile_Click(object sender, EventArgs e)
{
    NetworkCredentials nc = new NetworkCredentials("?", "?", "http://cdrs.globalpopsvoip.com/0000069/20091229/20091228_20091228.CDR");   
    WebClient client = new WebClient();

    client.Credentials = nc;
    String htmlCode = client.DownloadString("http://cdrs.globalpopsvoip.com/0000069/20091229/20091228_20091228.CDR");

    MessageBox.Show(htmlCode);
}

MessageBox はテストするだけです。問題は、この行に到達するたびに次のようになることです。

String htmlCode = client.DownloadString("http://cdrs.globalpopsvoip.com/0000069/20091229/20091228_20091228.CDR");

例外があります:

リモート サーバーがエラーを返しました: (401) 権限がありません。

これを修正するにはどうすればよいですか?

4

3 に答える 3

17

私の場合client.UseDefaultCredentials = true;、トリックを行いました。

于 2013-06-23T07:29:21.207 に答える
7

次のコードを試してみましたが、動作しています。

    private void Form1_Load(object sender, EventArgs e)        
    {
        try
        {
            // Create Request
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(@"http://192.168.0.181/axis-cgi/com/ptz.cgi?move=up");

            // Create Client
            WebClient client = new WebClient();

            // Assign Credentials
            client.Credentials = new NetworkCredential("root", "a");

            // Grab Data
            string htmlCode = client.DownloadString(@"http://192.160.0.1/axis-cgi/com/ptz.cgi?move=up");

            // Display Data
            MessageBox.Show(htmlCode);
        }
        catch (WebException ex) 
        {
            MessageBox.Show(ex.ToString());
        }
    }
于 2010-05-07T07:36:29.573 に答える
3

NetworkCredentialそのドメイン部分なしでを作成してみてください:

NetworkCredential nc = new NetworkCredential("?", "?");   
于 2010-01-10T22:02:29.043 に答える