C# Can';在WP7项目中找不到HttpWebRequest.GetResponse()
我正在尝试使用HttpWebRequest发送GET请求。C# Can';在WP7项目中找不到HttpWebRequest.GetResponse(),c#,http,windows-phone-7,httpwebrequest,xna,C#,Http,Windows Phone 7,Httpwebrequest,Xna,我正在尝试使用HttpWebRequest发送GET请求。 我在网上找到了很多例子(例如,…只需转到Scrape()方法)。它们基本上都做相同的事情: 使用WebRequest创建HttpWebRequest对象。创建(URL)并将其强制转换为HttpWebRequest,然后使用HttpWebRequest中的GetResponse()方法获取响应 问题是,GetResponse()似乎不存在于HttpWebRequest或WebRequest(这是它的基类)中。我唯一的选择是使用BeginG
我在网上找到了很多例子(例如,…只需转到
Scrape()
方法)。它们基本上都做相同的事情:
使用WebRequest创建HttpWebRequest
对象。创建(URL)并将其强制转换为HttpWebRequest
,然后使用HttpWebRequest
中的GetResponse()
方法获取响应
问题是,GetResponse()
似乎不存在于HttpWebRequest
或WebRequest
(这是它的基类)中。我唯一的选择是使用BeginGetResponse()
我唯一发现的是GetResponse()
是同步的,而BeginGetResponse()
是异步的,Silverlight只允许异步的。这对我一点帮助都没有,因为整个项目是一个XNA项目,这是我在里面创建的一个简单的C类。更准确地说,这是一款Windows Phone游戏,在XNA4.0中创建
HttpWebRequest webRequest = WebRequest.Create(URL) as HttpWebRequest;
StreamReader responseReader = new StreamReader(
webRequest.GetResponse().GetResponseStream());
有人知道为什么我没有
GetResponse()
?xna4 for windowsphone7只能进行异步呼叫。您可能会发现本文底部的代码也很有用
该职位的代码:
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();
}
}
}
这是Windows Phone的吗?如果是,那么请求仍然只是异步的。我从来没有遇到过问题但我只使用“normal.NET”。注意任何XNA差异。啊,我明白了。是的,是WP7。在我注意到你的答案之前,我刚刚编辑了我的问题并补充了这一点。呵呵,但愿我两小时前就知道。那肯定能帮我省去头痛。谢谢你的邀请help@keyboardP您应该将其作为答案发布,以便接受;)很好,这正是我要找的。谢谢@朝日谢谢你让我知道。我已经更新了post()问题中的链接。。。base.initialise是做什么的(它不一定存在正确的)?BeginGetResponse是否会立即执行will base.initialise的线程