响应未解析的HttpWebRequest和Set-Cookie标头(WP7)

Bre*_*ham 5 c# cookies httpwebrequest httpwebresponse windows-phone-7

我试图获取标题"Set-Cookie"或访问cookie容器,但Set-Cookie标头不可用.cookie位于响应头中,但它不在客户端请求对象中.我正在ClientHttp使用注册堆栈

bool httpResult = WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
Run Code Online (Sandbox Code Playgroud)

这是回复:

HTTP/1.1 200 OK
Content-Type: application/xml; charset=utf-8
Connection: keep-alive
Status: 200
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.0.pre4
ETag: "39030a9c5a45a24e485e4d2fb06c6389"
Client-Version: 312, 105, 0, 0
X-Runtime: 44
Content-Length: 1232
Set-Cookie: _CWFServer_session=[This is the session data]; path=/; HttpOnly
Cache-Control: private, max-age=0, must-revalidate
Server: nginx/0.7.67 + Phusion Passenger 3.0.0.pre4 (mod_rails/mod_rack)

<?xml version="1.0" encoding="UTF-8"?>
<user>
...
</user>
Run Code Online (Sandbox Code Playgroud)

我的回调代码包含如下内容:

var webRequest = (HttpWebRequest)result.AsyncState;
raw = webRequest.EndGetResponse(result) as HttpWebResponse;
foreach (Cookie c in webRequest.CookieContainer.GetCookies(webRequest.RequestUri))
{
    Console.WriteLine("Cookie['" + c.Name + "']: " + c.Value);
}
Run Code Online (Sandbox Code Playgroud)

我也试过查看标题,但响应中也没有Set-Cookie标题.

关于可能出现什么问题的任何建议?

Den*_*sky 6

尝试显式传递新的CookieContainer:

CookieContainer container = new CookieContainer();
container.Add(new Uri("http://yoursite"), new Cookie("name", "value"));
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://yoursite");
request.CookieContainer = container;
request.BeginGetResponse(new AsyncCallback(GetData), request);
Run Code Online (Sandbox Code Playgroud)


Mat*_*cey -1

您必须直接编辑标头集合。像这样的东西:

request.Headers["Set-Cookie"] = "name=value";

request.BeginGetResponse(myCallback, request);
Run Code Online (Sandbox Code Playgroud)