2

シンプルな C# HTTP Web リクエストを使用して、ルーターの「パネル」(192.168.1.1) に接続しようとしています。

var userName = "admin";
var passWord = "admin";
var encoding = new ASCIIEncoding();
var postData = "" + userName;
postData += (":" + passWord); //I saw (using Wireshark) that the HTTP packet is sending the username & password in this form: "username:password"
byte[] data = encoding.GetBytes(postData);

var myRequest = (HttpWebRequest)WebRequest.Create("http://192.168.1.1");
myRequest.Method = "POST"; **//Or should I use GET?**
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
var newStream = myRequest.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
try
{
  var response = myRequest.GetResponse();
  var responseStream = response.GetResponseStream();
  var responseReader = new StreamReader(responseStream);
  var result = responseReader.ReadToEnd();
}
catch (WebException we)
{
  Console.WriteLine(we.Message);
}

このコードを実行すると、UN とパスワードは正しいのに、「 401 Not Authorized Exception」というメッセージが表示されます。

誰かが私に提案できますか、ここで何が問題なのですか?

4

2 に答える 2

3

これをアドレスとして使用して、コードの投稿データ部分を削除してみましたか:

http://username:password@192.168.1.1

それ以外の場合は、この記事で説明されているように、基本認証を使用できます

于 2013-06-17T09:45:04.337 に答える
0

応答する前にこれを試してください

myRequest.Credentials = new NetworkCredential(userName,passWord);
于 2013-08-24T13:45:34.630 に答える