2011-02-17 4 views

Répondre

0

Vous aurez à faire face à des manipulations HTTP manuelles et des cookies pour cela. Une explication assez décente est disponible sur this page. Si vous avez travaillé avec des requêtes HTTP en C#, il ne devrait pas être un problème pour récupérer les méthodes décrites ici.

+0

Je connais cette page. J'espérais qu'il y avait un fragment de code que je pourrais utiliser. J'ai fait quelques requêtes HTTP pour Windows Mobile 6 donc je le connais un peu. J'espérais qu'il y avait quelque chose de sympa sous WP7 comme avec WebClient mais hélas ... –

2

C'est assez facile. D'abord vous devez effectuer une demande GET à la page https://www.google.com/accounts/ClientLogin avec votre identifiant et votre mot de passe (n'oubliez pas de les encoder en url). Et puis juste analyser la réponse (il y aura plusieurs paramètres divisés par un nouveau caractère de ligne \n) pour obtenir SID. Voici un exemple simple (pas de traitement d'erreur):

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)); 

Mais vous pouvez rendre ce code plus élégant en utilisant AsyncCTP.