我正在尝试检查是否有针对特定网址的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>
答案 0 :(得分:1)
您添加到侦听器的前缀是否必须解析到您的localhost计算机。确保DNS服务器正确地将主机解析为运行代码的计算机。
如果您在开发环境中对此进行测试和/或无法控制DNS服务器,请在hosts文件中添加一个条目,该条目将您要使用的任何主机名映射到本地计算机。
要注意的另一件事是港口。确保没有其他内容正在侦听您打算使用的端口。