【问题标题】:InvalidCastException HttpWebRequest c#InvalidCastException HttpWebRequest c#
【发布时间】:2011-09-21 18:49:53
【问题描述】:

我有一个问题:当我在 BackgroundAgent 中创建 HttpWebRequest 时,应用程序会抛出 InvalidCastException。 此代码适用于 App 前台任务,但不适用于 BackgroundAgent:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(//InvalidCastException 
              new Uri(url));
          request.BeginGetResponse(r => {
            HttpWebRequest httprequest = (HttpWebRequest)r.AsyncState;
            try {

完整代码:http://pastebin.com/zyCHBQuP

【问题讨论】:

  • 你的网址是以http还是https开头的?
  • 是的,他说的。 url 的值是多少?
  • https://api.vkontakte.ru/method/messages.get?count=" + 10 + "&preview_length=26&filters=1&access_token=" + ((App)App.Current).access_token
  • Create返回的类型是什么?
  • 我建议您将该声明分成三行:var myuri = new Uri(url);var req = WebRequest.Create(myUri);var request = (HttpWebRequest)req;。这可能会让您更好地了解错误的实际位置。

标签: c# windows-phone-7 httpwebrequest background-agent


【解决方案1】:

返回的类型取决于传递给 Create 方法的 Uri。你会得到一些 WebRequest 的后代。如果您要进行强制转换,您必须确保您传递的 Uri 是返回 HttpWebRequest 的类型,或者您需要在强制转换之前测试从 Create 返回的类型或使用as HttpWebRequest

http://msdn.microsoft.com/en-us/library/0aa3d588.aspx(用于 .net)

http://msdn.microsoft.com/en-us/library/0aa3d588%28v=VS.95%29.aspx(用于 Silverlight)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 2010-10-05
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多