HttpListner没有听

时间:2017-06-13 18:48:54

标签: c# httplistener

我正在尝试检查是否有针对特定网址的ajax请求,如果是,那么我正在尝试向请求添加Cookie。

但是我的HttpListner只监听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); } } 。如果我试图提供任何其他网址,那就不是在听。

我也关闭了我的防火墙,但问题仍然存在。

请告诉我我在哪里犯了错误。

以下是我的代码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>DBAccess</display-name>
  <servlet>
    <servlet-name>acessor</servlet-name>
    <servlet-class>dbaccess.servlet.DatabaseAccessor</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>acessor</servlet-name>
    <url-pattern>/DBAccess/*</url-pattern>
  </servlet-mapping>
</web-app>

1 个答案:

答案 0 :(得分:1)

您添加到侦听器的前缀是否必须解析到您的localhost计算机。确保DNS服务器正确地将主机解析为运行代码的计算机。

如果您在开发环境中对此进行测试和/或无法控制DNS服务器,请在hosts文件中添加一个条目,该条目将您要使用的任何主机名映射到本地计算机。

要注意的另一件事是港口。确保没有其他内容正在侦听您打算使用的端口。