在WP7项目中找不到HttpWebRequest.GetResponse()

Dar*_*per 13 c# xna http httpwebrequest windows-phone-7

我正在尝试使用HttpWebRequest发送GET请求.
我在网上找到了很多例子(例如,这一个 ......只是简单介绍一下这个Scrape()方法).他们基本上都做同样的事情:

HttpWebRequest使用WebRequest.Create(URL)创建一个对象并将其强制转换为HttpWebRequest,然后使用该GetResponse()方法获取响应HttpWebRequest.

事情GetResponse()似乎并不存在于任何一个HttpWebRequestWebRequest(它是它的基类).我唯一的选择是使用BeginGetResponse().

我发现的唯一的事情GetResponse()是同步,而BeginGetResponse()异步,Silverlight只允许异步.嗯,这对我没有任何帮助,因为整个事情是一个XNA项目,这是我在里面创建的一个简单的C#类.
更确切地说,这是一款在XNA 4.0中创建的Windows Phone游戏

HttpWebRequest webRequest = WebRequest.Create(URL) as HttpWebRequest; 
StreamReader responseReader = new StreamReader( 
         webRequest.GetResponse().GetResponseStream());
Run Code Online (Sandbox Code Playgroud)

有没有人知道为什么我没有GetResponse()

key*_*rdP 16

适用于Windows Phone 7的XNA 4只能进行异步调用.您可能会发现在底部的代码这篇文章有帮助.

该帖子的代码:

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();
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)