HttpListener
应该没问题,但它只是对http.sys的包装,这个库仅在WindowsXP及更高版本上可用。
你只需要一个前缀
http://127.0.0.1:8080/
因为这只是你的本地网络控制。或者,通配符支持如下
http://*:8080/
Jens Bannmann写道:
localhost
,他们
可以在任何地方。所以我才不
你说申请是什么意思?你是说网站?这完全是另一回事,您的专用代理服务器将在上侦听HttpListenerRequests
http://127.0.0.1:8080/
http://127.0.0.1:8080/
. 在这一点上它仍然在本地机器中。
在HttpListenerRequest/Response和HttpWebRequest/Response之间转换
转换每个传入
HttpListenerRequest
进入之内
HttpWebRequest
HttpWebResponse
对象,分析是否允许WebBrowser控件响应,如果允许,则将其写入
HttpListnererResponse
对象写入其他内容(错误状态)。
这可能是在.NET上构建自己的代理服务器的最简单方法
Jens Bannmann写道:
是的,这种转变是我
想避免不得不这样做。或者我能
只需要几行代码就可以了?从
很复杂。
-
请求行(包含URL、http方法和http版本)
-
直接标题
HttpListenerRequest请求
进入之内
HttpWebRequest请求
. 两个类都有泛型
原始访问的属性)
-
整个转换过程如下所示:
HttpListenerRequest listenerRequest;
WebRequest webRequest = WebRequest.Create(listenerRequest.Url);
webRequest.Method = listenerRequest.HttpMethod;
webRequest.Headers.Add(listenerRequest.Headers);
byte[] body = new byte[listenerRequest.InputStream.Length];
listenerRequest.InputStream.Read(body, 0, body.Length);
webRequest.GetRequestStream().Write(body, 0, body.Length);
WebResponse webResponse = webRequest.GetResponse();
如果你需要更多关于http协议的帮助,
refer to this wikipedia article
你也可以检查
this open source project
换一种方式。这不取决于
HttpListener公司
类,但它是完整的代理服务器解决方案,应该很容易根据需要进行修改。