2013-08-17 13 views
0

今天我試圖在包含授權表單的頁面上登錄。未在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); 

回答

1

其實我發現了一個辦法做到這一點。

在響應中,我在頭部(Set-cookie)中設置了cookie。我從頭文件中提取cookie並將其添加到需要cookie的下一個請求中。

相關問題