我已經搜索了一段時間,無法找到解決方案。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應用程序上運行的事實確保了我至今的請求已正確完成。
有沒有人知道那裏發生了什麼?