0

我在我的 wp8 应用程序中使用TweetSharp. 我想检测每条推文中的内容。使用照片很简单,使用TwitterStatus.Entities.Media它的图像集合。视频更难,指向视频的链接TwitterStatus.Entities.Urls(例如youtube.comyoutu.be等)带有指向其他网站的简单链接。官方 android Twitter 应用程序检测内容类型并显示图标 forech 类型(链接、视频、照片)。我试图仅从 JSON 中获取此信息,但在 JSON 中urls,视频链接也在media. 但是android app知道如何检测内容,所以可以制作。

在完整的解决方案中,我只需要一个enum字段with , , orContentTypeMyTwitterMessagePhotoVideoLinkNothing

4

1 回答 1

0

我能想到的几种方法是

a) 只需使用已知的文件扩展名并检查扩展名是否是类型并返回(假设所有 URL 都将提供文件扩展名)。

b) 使用 URL 启动下载,但仅检索标头

 WebClient aClient = new WebClient();
 WebHeaderCollection collection = new WebHeaderCollection();
 collection[HttpRequestHeader.Range] = "bytes=0-0";
 aClient.Headers = collection; 
 aClient.DownloadStringAsync(new Uri("URI GOES HERE"));

然后在 DownloadStringCompleted 事件中解析标题并检索内容类型

 var aClient = (Webclient)sender;
 var responseHeaders = client.ResponseHeaders;
 var TypeOfContent = responseHeaders["Content-Type"];

然后您应该能够从那里确定内容,可以在此处找到 MIME 类型

对于 b) 您可能还需要处理重定向,但这是另一个问题。

于 2013-03-09T21:23:10.953 回答