Как я могу получить ответ от сервера в WP7? - PullRequest
3 голосов
/ 28 июня 2011

Я пытаюсь отправить запрос с классом HttpWebRequest на WP7, но не получаю никакого ответа ... Вот мой код:

            InitializeComponent();
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.google.com/");
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            tbResponse.Text = reader.ReadToEnd();

            // Cleanup the streams and the response.
            reader.Close();
            dataStream.Close();
            response.Close();
            Console.ReadLine();

Более того, я использую это расширение: нажмите здесь , но я протестировал его на консольном приложении Windows, и не было никаких проблем, поэтому я думаю, что проблема в том, что я ничего не знаю о WP7.

1 Ответ

6 голосов
/ 28 июня 2011

Вам нужно сделать асинхронные запросы, например:

var webRequest = (HttpWebRequest)HttpWebRequest.Create(Url);
webRequest.BeginGetResponse(new AsyncCallback(request_CallBack), webRequest );

и обработчик ответа:

void request_CallBack(IAsyncResult result)
{
        var webRequest = result.AsyncState as HttpWebRequest;
        var response = (HttpWebResponse)WebRequest.EndGetResponse(result);
        var baseStream = response.GetResponseStream();

            // if you want to read binary response
            using (var reader = new BinaryReader(baseStream))
            {
                DataBytes = reader.ReadBytes((int)baseStream.Length);
            }

            // if you want to read string response
            using (var reader = new StreamReader(baseStream))
            {
                Result = reader.ReadToEnd();
            }
}

Вот вспомогательный класс, который я разработал для обработки моих запросов веб-запросов во время разработкиWindows Phone 7 приложений:

http://www.manorey.net/mohblog/?p=17&preview=true

...