2011-02-17 46 views

回答

0

你必須爲此處理手動HTTP操作和cookie。在this page上可以找到相當不錯的解釋。如果你在C#中使用HTTP請求,那麼拿起那裏描述的方法應該不成問題。

+0

我熟悉這個頁面。我有點希望有一個我可以使用的代碼片段。我爲Windows Mobile 6做了一些HTTP請求,所以我知道這一點。我希望在WP7下有一些不錯的東西,就像他們用WebClient做的一樣,但是可惜... – 2011-02-17 18:18:25

2

這很容易。首先,您應該使用您的登錄名和密碼對https://www.google.com/accounts/ClientLogin頁面執行GET請求(不要忘記對它們進行網址編碼)。然後只是解析響應(將有幾個參數除以新行字符\n)得到SID。下面是一個簡單的例子(沒有錯誤處理):

var url = string.Format("https://www.google.com/accounts/ClientLogin?service=reader&Email={0}&Passwd={1}", 
    HttpUtility.UrlEncode(email), 
    HttpUtility.UrlEncode(password) 
); 
var web = new WebClient(); 
web.DownloadStringCompleted += (sender, e) => 
{ 
    var sid = e.Result.Split('\n') 
     .First(s => s.StartsWith("SID=")) 
     .Substring(4); 
}; 
web.DownloadStringAsync(new Uri(url)); 

但是你可以使代碼更優雅的使用AsyncCTP