C# HttpListner未侦听
我试图检查是否有对特定url的ajax请求,如果是,则尝试向请求添加cookie 但是我的HttpListner只监听C# HttpListner未侦听,c#,httplistener,C#,Httplistener,我试图检查是否有对特定url的ajax请求,如果是,则尝试向请求添加cookie 但是我的HttpListner只监听localhost。如果我试图给出任何其他url,它就不会监听 我也关闭了防火墙,但仍然存在同样的问题 请告诉我哪里出错了 下面是我的代码: class Program { static void Main(string[] args) { HttpListener listner = new HttpListener(); lis
localhost
。如果我试图给出任何其他url,它就不会监听
我也关闭了防火墙,但仍然存在同样的问题
请告诉我哪里出错了
下面是我的代码:
class Program
{
static void Main(string[] args)
{
HttpListener listner = new HttpListener();
listner.Prefixes.Add("<my url>");//For example, https://www.google.co.in/
listner.Start();
HttpListenerContext context = listner.GetContext();
HttpListenerRequest request = context.Request;
WebRequest webReq = WebRequest.Create(request.Url);
//Copying the headers
System.Collections.Specialized.NameValueCollection headers = request.Headers;
for (int i = 0; i < headers.AllKeys.Length; i++)
{
if (!WebHeaderCollection.IsRestricted(headers.AllKeys[i]))
{
webReq.Headers.Add(headers.AllKeys[i], headers[headers.AllKeys[i]]);
}
}
webReq.ContentLength = request.ContentLength64;
webReq.ContentType = request.ContentType;
webReq.Headers.Add(HttpRequestHeader.Cookie, "<My Cookie>");
HttpListenerResponse response = context.Response;
WebResponse webResponse = webReq.GetResponse();
webResponse.GetResponseStream().CopyTo(response.OutputStream);
}
}
类程序
{
静态void Main(字符串[]参数)
{
HttpListener listner=新建HttpListener();
listner.Prefixes.Add(“”;//例如,https://www.google.co.in/
Start();
HttpListenerContext=listner.GetContext();
HttpListenerRequest=context.request;
WebRequest webReq=WebRequest.Create(request.Url);
//复制标题
System.Collections.Specialized.NameValueCollection headers=请求.headers;
对于(int i=0;i
无论您向侦听器添加什么前缀,都必须解析为本地主机。确保DNS服务器将主机正确解析为运行代码的计算机
如果您在开发环境中测试此功能和/或无法控制DNS服务器,请在主机文件中添加一个条目,该条目将您想要使用的任何主机名映射到本地计算机
另外要注意的是港口。确保在您打算使用的端口上没有其他内容正在侦听。我非常确定httplistener用于制作web服务器等。将url设置为google意味着“我想处理进入google的web请求”,这是不会发生的。您想用它做什么?当我试图使用$.ajax发送跨源请求时,浏览器正在删除验证请求的cookies。因此,我正在编写一个代理,它将拦截请求,添加标题,然后发送它。我想处理从我的机器发送到google(示例)的web请求。我认为您正在试图解决一个已经解决的问题:它有点像fiddler。Fiddler能够侦听我从计算机发出的任何请求。这是否意味着如果我侦听“”,侦听器将不会启动?您需要了解主机名是如何解析的。您可以通过在本地主机文件中添加将域Google.com指向本地计算机的条目来覆盖DNS解析。只有这样,请求才会被路由到本地侦听器。花点时间读一下:也读一下: