今天我試圖在包含授權表單的頁面上登錄。未在Windows Phone 7應用程序中使用RestSharp設置的Cookie應用程序
我在Windows Phone 7上使用RestSharp,我嘗試了幾乎所有的東西,但沒有奏效。
在我的臺式電腦上的瀏覽器,當我使用的登錄頁面(http://myanimelist.net/login.php),然後輸入我的有效憑據,我會被重定向到面板頁(http://myanimelist.net/panel.php)
在Windows Phone 7(和8 )當我嘗試使用RestSharp要權威性自己,我重定向到面板頁,但有以下錯誤:
Error: You must first login to see this page.
其實我沒有授權,但我沒有看到合適的面板頁面。
我在WPF應用程序中嘗試了同樣的事情,它在那裏工作。
在我的WPF應用程序我有下面的代碼:
var client = new RestSharp.RestClient();
client.BaseUrl = "http://myanimelist.net/login.php";
client.Authenticator = new SimpleAuthenticator("username", "mylogin", "password", "mypassword");
client.CookieContainer = new CookieContainer();
var request = new RestRequest(Method.POST);
var response = client.Execute(request);
屬性「response.Content」中將包含頁面的一些信息,並與我的登錄歡迎消息。這意味着我已通過身份驗證。
但是......
隨着Windows Phone 7的下面的代碼,屬性「response.Content」將包含一些信息的網頁,並在下面留言吧:
Error: You must first login to see this page
而且這裏是使用的WP7代碼:
我錯過了什麼嗎? WP7上的RestSharp和WPF應用程序有區別嗎?
我使用Fiddler檢查會發生什麼,並且我可以看到cookie從未在WP7上設置(在WPF應用程序中設置Cookie)。
編輯:
我發現了一些有趣的事情,當我得到的迴應,我可以看到提琴手是一個cookie在WPF應用程序,並在WP7應用程序設置。
因此,我試圖在我的WP7應用程序中添加cookie,然後才能發出我的請求並使其正常工作。
我添加了我可以在Fiddler中看到的值,但我找不到使用RestSharp檢索這些值的方法。
這是我嘗試添加之前執行我的要求:
myRequest.AddParameter("A", "theFirstValue", ParameterType.Cookie);
myRequest.AddParameter("B", "theSecondValue", ParameterType.Cookie);