Dar*_*per 13 c# xna http httpwebrequest windows-phone-7
我正在尝试使用HttpWebRequest发送GET请求.
我在网上找到了很多例子(例如,这一个 ......只是简单介绍一下这个Scrape()方法).他们基本上都做同样的事情:
HttpWebRequest使用WebRequest.Create(URL)创建一个对象并将其强制转换为HttpWebRequest,然后使用该GetResponse()方法获取响应HttpWebRequest.
事情GetResponse()似乎并不存在于任何一个HttpWebRequest或WebRequest(它是它的基类).我唯一的选择是使用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)
| 归档时间: |
|
| 查看次数: |
10206 次 |
| 最近记录: |