从Silverlight 4应用程序发布到Twitter

时间:2010-07-12 01:25:48

标签: c# silverlight silverlight-4.0

我写了一个使用webclient发布到Twitter的方法。从控制台应用程序调用方法时,一切正常。

我将方法迁移到Silverlight 4.这是有趣的开始。在清理代码,切换到异步方法调用,并摆脱红色曲线下划线后,代码现在在我的SL4应用程序中运行。但是,这些推文并没有真正发布到我的推特页面。

我为“_completed”事件连接了一个事件处理程序。它被解雇了。 还为“_uploadProgressChanged”事件连接了一个事件处理程序。它永远不会被解雇。可以上传太快了吗?

有关此问题的任何建议?

更新#2- 更正......“_completed”事件不会被解雇。我还添加了Fiddler来观察流量。该应用程序似乎没有传输任何内容。如果我发布到stackoverflow(Fiddler工作正常),Fiddler会显示活动。

public static void PostTwitterUpdate(string handle, string pwd, string tweet)
{
     WebClient webClient = new WebClient();

     webClient.Credentials = new NetworkCredential(handle, pwd);

     Uri uriString = new Uri("http://twitter.com/statuses/update.xml", UriKind.Absolute);

     try
     {
          // event handlers added tongiht for debugging...
          webClient.UploadProgressChanged += webClient_UploadProgressChanged;
          webClient.UploadStringCompleted += webClient_UploadStringCompleted;

          webClient.UploadStringAsync(uriString, "It's just me testing...");
     }

     catch (Exception ex)
     {
          throw;
     }

}


static void webClient_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
{
     // breakpoint set here for debugging...
}  




static void webClient_UploadProgressChanged(object sender, UploadProgressChangedEventArgs e)
{
     // breakpoint set here for debugging...
}

1 个答案:

答案 0 :(得分:1)

这仅适用于提升信任的Out-of-Browser应用程序,因为http://twitter.com/crossdomain.xml处的Twitter跨域策略文件不允许调用基于Web页面的应用程序。 迈克尔