Skip to main content
 首页 » 编程设计

c#之如何使用 Rx 异步查询 Twitter 搜索

2024年02月24日19sharpest

我正在考虑使用 Rx(响应式框架)来异步查询给定关键字的 Twitter 搜索 API。我想要构建的示例应用程序应该能够在控制台中显示新推文。

你觉得有可能吗?它会比使用标准编程技术更简单吗?

你会怎么做?

谢谢! 杰里米

请您参考如下方法:

如何完成的快速模型。请注意,我只完成了一个简单的 Web 请求,但这应该很容易扩展以与 Twitter API 交互。

更新:我之前的示例无法很好地处理重复请求。以下改进示例使用 Observable.Interval 生成连续的滴答流,驱动请求的创建和响应下载。

Observable 
    .Interval(TimeSpan.FromSeconds(5)) 
    .Select(ticks => (HttpWebRequest)WebRequest.Create("http://demicode.com")) 
    .Select(request => Observable.FromAsyncPattern(request.BeginGetResponse,  
        asyncResult =>  
        { 
            using(var response = request.EndGetResponse(asyncResult)) 
            using (var sr = new StreamReader(response.GetResponseStream())) 
            { 
                return DateTime.Now.ToString() + sr.ReadToEnd(); 
            } 
        })) 
    .SelectMany(getContent => getContent()) 
    .ObserveOnDispatcher() 
    .Subscribe(content => downloadContent.Text = content); 

更新 2: 似乎使用像 TweetSharp 这样的库会很好地为您处理 Twitter 请求。 Observable.FromAsyncPattern 结合异步 twitter.BeginRequest 方法是一个很好的组合。