晚上好,
我通过以下 2 个批处理命令在我的 Windows 8 笔记本电脑上创建了一个无线托管网络:“netsh wlan set hostsnetwork mode=allow ssid=testing key=12345678”和“netsh wlan start hostsnetwork”
之后,一台设备(基于 Android 的手机)能够成功连接到我的笔记本电脑上托管的这个无线托管网络。我还在 C# 的 1234 端口上创建了一个 HttpListener,设备可以通过使用内置的 Web 浏览器访问来成功访问:
http://192.168.138.1:1234
但是,主机(即我的笔记本电脑)如何拦截和重定向网页请求?也就是说,当设备尝试访问任何网页(例如 google.com 或 facebook.com)时,如何通知在我的笔记本电脑上运行的 .NET 程序,然后通过发送此网页将设备重定向到另一个网页?
我尝试了以下方法:
HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://+:80/");
listener.Start();
Console.WriteLine("Started");
while (true)
{
var c = listener.GetContext();
Console.WriteLine("Connection");
string response = "<HTML><BODY>My web page.<br></BODY></HTML>"; //Redirects device to this
byte[] b = Encoding.UTF8.GetBytes(response);
c.Response.ContentLength64 = b.Length;
c.Response.OutputStream.Write(b, 0, b.Length);
c.Response.OutputStream.Close();
}
但是,当我使用该设备访问任何网页(例如 google.com)时,在我的笔记本电脑上运行的程序根本不会接收任何内容。抱歉,如果我问了一个重复的问题,我在任何地方都找不到!