Разместить с помощью WebRequest - PullRequest
2 голосов
/ 25 августа 2010

Я пытаюсь опубликовать в Google, чтобы я мог войти в Google Reader и загрузить список подписок, но я не могу найти способ опубликовать в Google в Windows 7 Phone SDK, у кого-нибудь есть пример, как это сделать? это?

* Изменить: Извините, не очень ясно, я пытаюсь использовать метод POST, чтобы отправить адрес электронной почты и пароль для входа в Google и получить sid. Я использовал WebClient и HttpWebRequest, но во всех примерах, которые я видел для отправки сообщений, вызовы API не находятся в Windows 7 Phone SDK.

Ответы [ 3 ]

18 голосов
/ 25 августа 2010

Я ничего не знаю о API Google, который вы пытаетесь использовать, но если все, что вам нужно, это отправить запрос POST, вы, безусловно, можете сделать это с помощью WebClient или HttpWebRequest. С WebClient вы можете использовать WebClient.OpenWriteAsync() или WebClient.UploadStringAsync(), документация здесь: http://msdn.microsoft.com/en-us/library/tt0f69eh%28v=VS.95%29.aspx

С HttpWebRequest вам нужно установить для свойства Method значение "POST". Вот основной пример:

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

Класс WebClient может быть проще в использовании, но менее настраиваемый. Например, я не видел способа прикрепления файлов cookie к WebClient запросам или способа установки заголовка Content-Type при использовании WebClient.

3 голосов
/ 27 августа 2010

Вы пытались использовать RESTSharp для своего проекта Windows Phone 7?Последний выпуск поддерживает Windows Phone 7, и у меня не было проблем с работой с популярными API REST.В вашем конкретном случае, когда вы пытаетесь использовать API Google Reader, эта статья Люка Лоури может помочь.

3 голосов
/ 25 августа 2010

Не уверен, что вы уже использовали, но вы пробовали WebClient?

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

Также есть WebRequest , на который можно посмотреть, это может сработать для того, что вы делаете.

Редактирование: Что касается редактирования "POST", веб-клиент позволяет вам отправлять сообщения:

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

Затем вам также необходимо добавить обработчик OpenWriteCompleted.

точно не знаю, что вы делаете, поэтому вам нужно добавить больше информации к вашему вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...