Windows phone 7 如何从Windows Phone 7执行HttpWebRequests?

Windows phone 7 如何从Windows Phone 7执行HttpWebRequests?,windows-phone-7,httpwebrequest,httpwebresponse,Windows Phone 7,Httpwebrequest,Httpwebresponse,几天来,我一直在寻找我的问题的答案,但不幸的是,我没有运气。我希望你们能帮我 所以,我想做的只是对delicious.com API进行一个简单的调用,该API用delicious术语返回我最近的书签帖子。因此,您只需使用以下命令并输入登录到delicious.com的凭据即可 当我在一个标准的.NET4控制台应用程序中使用HttpWebRequest的魔力并设置凭据时,它会按预期工作。尝试在WP7 emulator上执行相同的基本HttpWebRequest会导致WebException,指出

几天来,我一直在寻找我的问题的答案,但不幸的是,我没有运气。我希望你们能帮我

所以,我想做的只是对delicious.com API进行一个简单的调用,该API用delicious术语返回我最近的书签帖子。因此,您只需使用以下命令并输入登录到delicious.com的凭据即可

当我在一个标准的.NET4控制台应用程序中使用HttpWebRequest的魔力并设置凭据时,它会按预期工作。尝试在WP7 emulator上执行相同的基本HttpWebRequest会导致WebException,指出远程服务器返回错误:NotFound。。 当深入研究这个异常时,我可以看到我的响应有一个未经授权的状态描述。似乎根本没有发生认证

接下来,我尝试直接设置Authorization RequestHeader,因为我读到设置凭据有时会导致问题。你猜怎么着,结果是一样的

我最终得到了以下代码,但没有任何想法。我希望这里有人能 请帮助我指出一个方法,如何从WP7访问我的书签

public void RetrieveRecentBookmarks(string userName, string password)
{
    HttpWebRequest request = HttpWebRequest.CreateHttp(requestString);

    byte[] bytes = System.Text.UTF8Encoding.UTF8.GetBytes(userName + ":" + password)
    string authInfo = Convert.ToBase64String(bytes);
    request.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " + authInfo;

    RequestState state = new RequestState(request);
    IAsyncResult result = request.BeginGetResponse(GetResponseCallback, state);
}

private static void GetResponseCallback(IAsyncResult asynchronousResult)
{
    RequestState state = asynchronousResult.AsyncState as RequestState;
    HttpWebRequest request = state.Request as HttpWebRequest;

    // Here is where it breaks...
    HttpWebResponse response = request.EndGetResponse(asynchronousResult) as HttpWebResponse;
}

提前谢谢

我现在知道,我的代码是绝对正确和有效的。不起作用的是模拟器通信,正如肖恩·肯德罗特(Shawn Kendrot)已经提到的那样。 我设置了一个全新的Win7,安装了WP7.1 SDK和7.1.1更新,它的工作方式与预期的一样。所以好像有什么东西阻止了我从模拟器上的调用。我不知道它是什么,但我必须承认,我不太在乎,因为它现在起作用了


感谢Shawn指出Emulator和web有时会出现问题,这将我推向了正确的方向。

我发现Emulator有时无法与web一起工作。通常,我通过尝试使用emulator浏览器来确认这是一个模拟器问题。它通常会失败。如果你有一部真正的手机,试着调试一下。另一个测试是,如果你点击了bing.com之类的东西,你是否会得到一个结果。每次我尝试一下,模拟器的浏览器都可以正常工作。此外,当我去bing.com时,我的WebRequest会很高兴地返回。由于这是我为WP7开发的第一个应用程序,我还不是一个注册的开发人员,所以在设备上调试还不是一个选项。我可能应该花99美元,而不是浪费更多的时间。。。