我必须在不同的域上发布页面:http://domain1/page1.aspx和http://domain2/page2.aspx(实际上它是http处理程序)。 通过WebHttpRequest我将发送请求从第1页发送到第2页。
string result;
var webRequest = (HttpWebRequest)WebRequest.Create("http://domain2/page2.aspx");
webRequest.Method = WebRequestMethods.Http.Post;
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = 0;
using (var webResponse = webRequest.GetResponse())
{
if (webResponse == null)
return null;
var reader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8, true);
try
{
result = reader.ReadToEnd();
if (string.IsNullOrEmpty(result))
return null;
}
finally
{
reader.Close();
}
}
return result.Deserialize();
我知道,domain2上有一个cookie,但是当我进入page2.aspx时,cookies集合是空的。 当我将简单的Response.Redirect设置为page2时,cookie就存在了。 那么有可能提出这样的要求吗?我错了吗?或者也许有另一种方法可以做这样的事情?
答案 0 :(得分:0)
您正在通过代码而不是通过浏览器向第2页请求。通常是一个将cookie(与站点相关联)发送到Web服务器的浏览器。在您的情况下,您需要在第1页对page2的请求的响应中手动传输cookie名称值(假设这是您想要的/意味着什么)。
此外,默认情况下在HttpWebRequest
中禁用cookie,因此即使page2服务器代码添加了一些cookie,除非使用CookiContainer属性启用它们,否则它将不会在响应对象中看到(读取链接中的文档/示例。)