Не удалось найти HttpWebRequest.GetResponse() в проекте WP7

Я пытаюсь отправить запрос GET с помощью HttpWebRequest.
Я нашел множество примеров по всему миру (например, этот, просто перейдите к методу Scrape()), Все они в основном делают одно и то же:

Создайте объект HttpWebRequest, используя WebRequest.Create(URL) и отбросив его до HttpWebRequest, затем получив ответ с помощью метода GetResponse() из HttpWebRequest.

Thing is, GetResponse(), похоже, не существует ни в HttpWebRequest, ни в WebRequest (который является его базовым классом). Мой единственный вариант - использовать BeginGetResponse().

Единственное, что я обнаружил, - это то, что GetResponse() является синхронным, а BeginGetResponse() - асинхронным, а Silverlight - асинхронным. Ну, это мне совсем не помогает, так как все это проект XNA, и это простой класс С#, который я создал внутри.
Чтобы быть более точным, это игра в Windows Phone, созданная в XNA 4.0

HttpWebRequest webRequest = WebRequest.Create(URL) as HttpWebRequest; 
StreamReader responseReader = new StreamReader( 
         webRequest.GetResponse().GetResponseStream());

Кто-нибудь знает, почему у меня нет GetResponse()?

Ответы

Ответ 1

XNA 4 для Windows Phone 7 может выполнять только асинхронные вызовы. Возможно, вы найдете код внизу этого сообщения.

Код с этой должности:

protected override void Initialize()
{
    string webServiceAddress = @"http://localhost/service/service1.asmx";           
    string methodName = "HelloWorld";

    string webServiceMethodUri = string.Format("{0}/{1}", webServiceAddress, methodName);

    HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(webServiceMethodUri);
    httpWebRequest.Method = "POST";

    httpWebRequest.BeginGetResponse(Response_Completed, httpWebRequest);

    base.Initialize();
 }

 void Response_Completed(IAsyncResult result)
 {
    HttpWebRequest request = (HttpWebRequest)result.AsyncState;
    HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result);

    using (StreamReader streamReader = new StreamReader(response.GetResponseStream()))
    {
        string xml = streamReader.ReadToEnd();

        using(XmlReader reader = XmlReader.Create(new StringReader(xml)))
        {
             reader.MoveToContent();
             reader.GetAttribute(0);
             reader.MoveToContent();
             message = reader.ReadInnerXml();
        }
    }
 }