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

标签 c# http windows-phone-7 httpwebrequest xna

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

创建一个 HttpWebRequest使用 WebRequest.Create(URL) 对象并将其转换为 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()

最佳答案

Windows Phone 7 的 XNA 4 只能进行异步调用。您可能会在 this post 的底部找到代码也很有帮助。

该帖子的代码:

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

关于c# - 在 WP7 项目中找不到 HttpWebRequest.GetResponse(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5971866/

相关文章:

Silverlight Windows Phone 7 - 使用硬件后退按钮后按钮单击事件丢失

c# - 是否可以仅在一个 .exe 中使用 ClickOnce 发布 Visual Studio C# 项目?

c# - 分配中意外的后增量行为

PHP 不解析 HTTP POST(压缩)JSON 请求?

java - 通过套接字连接的多个 HTTP 请求

c# - 在当前上下文错误中不存在

c# - Windows Phone 中的主题(浅色或深色)使用 C#

c# - 使用 MySqlCommand.ExecuteNonQuery 将几何数据插入表中

c# - 在 C# 中表达类型关系并避免长类型参数列表

php - 如何在一个提交按钮上禁用 JS 的情况下为访问者执行两个 POST 请求?