Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';在WP7项目中找不到HttpWebRequest.GetResponse()_C#_Http_Windows Phone 7_Httpwebrequest_Xna - Fatal编程技术网

C# Can';在WP7项目中找不到HttpWebRequest.GetResponse()

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

我正在尝试使用HttpWebRequest发送GET请求。
我在网上找到了很多例子(例如,…只需转到
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的线程