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

本文关键字:GetResponse HttpWebRequest 找不到 WP7 项目 | 更新日期: 2023-09-27 17:56:24

我正在尝试使用 HttpWebRequest 发送 GET 请求。
我在网上找到了很多例子(例如,这个......只需转到Scrape()方法)。它们基本上都做同样的事情:

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

问题是,GetResponse()似乎在HttpWebRequestWebRequest(这是它的基类)中都不存在。我唯一的选择是使用 BeginGetResponse() .

我唯一发现的是GetResponse()是同步的,而BeginGetResponse()是异步的,并且 Silverlight 只允许异步。好吧,这根本没有帮助我,因为整个事情是一个 XNA 项目,这是我在其中创建的一个简单的 C# 类。
更准确地说,这是一款Windows Phone游戏,在XNA 4.0中创建

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

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

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

XNA 4 for 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();
        }
    }
 }