我已经搜索了一段时间,无法找到解决方案。Microsoft HTTP客户端库 - CookieContainer将永远不会使用
我目前正在开发一个Windows Phone应用程序(针对7.1)。为了与互联网我使用的NuGet级封装通信:Microsoft.Net.Http
下面的代码是用来与网络服务器进行通信:
CookieContainer container = new CookieContainer();
HttpClientHandler handler = new HttpClientHandler();
handler.UseCookies = true;
handler.CookieContainer = container;
HttpClient client = new HttpClient(handler);
Uri myUri = new Uri("http://my-server/ajax/login?action=login&name=user&password=passwd");
var task = client.GetStringAsync(myUri);
task.Wait();
String result = task.Result;
不出所料这个GET请求的结果。我也检查过服务器端。登录过程已成功完成,并将有效的JSESSIONID返回给客户端。
为了验证我的问题,我已经创建了一个简单的控制台应用程序完全相同的代码作为上述(复制&从我的WP溶液到一个Cl溶液粘贴(以及对应的NuGetPackage如上所述)。
现在有一个很大的区别 我设置一些断点,查看变量:
在Windows Phone:
? container
{System.Net.CookieContainer}
Capacity: 300
Count: 0
MaxCookieSize: 4096
PerDomainCapacity: 20
在我的控制台应用程序:
? container
{System.Net.CookieContainer}
Capacity: 300
Count: 3
MaxCookieSize: 4096
PerDomainCapacity: 20
我真的不知道那里发生了什么...... 有人说可能是Cookies被标记为安全。我已经检查过了,那不是这种情况。由于代码在CLI应用程序上运行的事实确保了我至今的请求已正确完成。
有没有人知道那里发生了什么?