2010-08-25 4 views
2

J'essaie de poster sur google pour pouvoir me connecter à Google Reader et télécharger la liste des abonnés, mais je n'arrive pas à trouver un moyen de poster sur google dans le Windows Phone Phone SDK, quelqu'un at-il un exemple sur comment faire ça?Publier avec WebRequest

* Edit: Désolé n'était pas très clair J'essaie d'utiliser la méthode POST, de soumettre un email et mot de passe pour google login et récupérer un sid. J'ai utilisé WebClient et HttpWebRequest mais tous les exemples que j'ai vu pour envoyer des données post, les appels api ne sont pas dans le sdk de Windows Phone 7.

Répondre

3

Avez-vous essayé d'utiliser RESTSharp pour votre projet Windows Phone 7? La dernière version prend en charge Windows Phone 7 et je n'ai eu aucun problème avec les API REST populaires. Dans votre cas particulier où vous essayez d'utiliser l'API Google Reader, this article par Luke Lowry peut éventuellement vous aider.

3

Vous ne savez pas exactement ce que vous avez déjà utilisé, mais avez-vous essayé WebClient?

WebClient web = new WebClient(); 
web.DownloadStringCompleted += (s, e) => 
{ 
    if (e.Error == null) 
     CodeHereToHandleSuccess(); 
    else 
     CodeHereToHandleError(e.Error); 
}; 
web.DownloadStringAsync(new Uri(theURLYoureTryingToUse)); 

Il y a aussi WebRequest regarder aussi, qui pourrait fonctionner pour ce que vous faites.

Edit: Pour ce qui est votre "POST" modifier, webclient vous permet de faire après:

 web.OpenWriteAsync(new Uri(theURLYoureTryingToUse), "POST"); 

vous aussi alors devez ajouter un gestionnaire OpenWriteCompleted.

Vous ne savez pas exactement ce que vous faites, vous devrez donc ajouter plus d'informations à votre question.

+0

S'il vous plaît voir mon edit – instigator

18

Je ne sais rien de l'API Google que vous essayez d'utiliser, mais si tout ce dont vous avez besoin est d'envoyer une requête POST, vous pouvez certainement le faire avec WebClient ou HttpWebRequest. Avec WebClient, vous pouvez utiliser WebClient.OpenWriteAsync() ou WebClient.UploadStringAsync(), la documentation est ici: http://msdn.microsoft.com/en-us/library/tt0f69eh%28v=VS.95%29.aspx

Avec HttpWebRequest, vous devrez définir la propriété Method-"POST". Voici un exemple de base:

var request = WebRequest.Create(new Uri(/* your_google_url */)) as HttpWebRequest; 
request.Method = "POST"; 
request.BeginGetRequestStream(ar => 
{ 
    var requestStream = request.EndGetRequestStream(ar); 
    using (var sw = new StreamWriter(requestStream)) 
    { 
     // Write the body of your request here 
    } 

    request.BeginGetResponse(a => 
    { 
     var response = request.EndGetResponse(a); 
     var responseStream = response.GetResponseStream(); 
     using (var sr = new StreamReader(responseStream)) 
     { 
      // Parse the response message here 
     } 

    }, null); 

}, null); 

La classe WebClient peut être plus facile à utiliser, mais il est moins personnalisable. Par exemple, je n'ai pas vu un moyen de joindre des cookies aux demandes WebClient, ou un moyen de définir l'en-tête Content-Type lors de l'utilisation de WebClient.