在 WP7 项目中找不到 HttpWebRequest.GetResponse()
本文关键字:GetResponse HttpWebRequest 找不到 WP7 项目 | 更新日期: 2023-09-27 17:56:24
我正在尝试使用 HttpWebRequest 发送 GET 请求。
我在网上找到了很多例子(例如,这个......只需转到Scrape()
方法)。它们基本上都做同样的事情:
通过使用 WebRequest.Create(URL) 创建一个HttpWebRequest
对象并将其强制转换为HttpWebRequest
,然后使用 GetResponse()
方法从 HttpWebRequest
获取响应。
问题是,GetResponse()
似乎在HttpWebRequest
或WebRequest
(这是它的基类)中都不存在。我唯一的选择是使用 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()
?
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();
}
}
}