From: spx Date: Sat, 2 Jul 2016 18:30:36 +0000 (+0900) Subject: UserStreamsの接続をGetStreamingStreamAsyncへ分離 X-Git-Tag: OpenTween_v1.3.5~31^2~1 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=c54d35f7f6c4f4e3a3448ed97a825f0d6cac9cb8;p=opentween%2Fopen-tween.git UserStreamsの接続をGetStreamingStreamAsyncへ分離 --- diff --git a/OpenTween/Api/TwitterApi.cs b/OpenTween/Api/TwitterApi.cs index 088a2fd9..8d67f7e3 100644 --- a/OpenTween/Api/TwitterApi.cs +++ b/OpenTween/Api/TwitterApi.cs @@ -670,7 +670,7 @@ namespace OpenTween.Api if (!string.IsNullOrEmpty(track)) param["track"] = track; - return this.apiConnection.GetStreamAsync(endpoint, param); + return this.apiConnection.GetStreamingStreamAsync(endpoint, param); } public OAuthEchoHandler CreateOAuthEchoHandler(Uri authServiceProvider, Uri realm = null) diff --git a/OpenTween/Connection/IApiConnection.cs b/OpenTween/Connection/IApiConnection.cs index 2fca29ce..49064a30 100644 --- a/OpenTween/Connection/IApiConnection.cs +++ b/OpenTween/Connection/IApiConnection.cs @@ -34,6 +34,8 @@ namespace OpenTween.Connection Task GetStreamAsync(Uri uri, IDictionary param); + Task GetStreamingStreamAsync(Uri uri, IDictionary param); + Task> PostLazyAsync(Uri uri, IDictionary param); Task> PostLazyAsync(Uri uri, IDictionary param, IDictionary media); diff --git a/OpenTween/Connection/TwitterApiConnection.cs b/OpenTween/Connection/TwitterApiConnection.cs index fa9f87f2..4185ac80 100644 --- a/OpenTween/Connection/TwitterApiConnection.cs +++ b/OpenTween/Connection/TwitterApiConnection.cs @@ -137,6 +137,28 @@ namespace OpenTween.Connection } } + public async Task GetStreamingStreamAsync(Uri uri, IDictionary param) + { + var requestUri = new Uri(RestApiBase, uri); + + if (param != null) + requestUri = new Uri(requestUri, "?" + MyCommon.BuildQueryString(param)); + + try + { + return await this.httpStreaming.GetStreamAsync(requestUri) + .ConfigureAwait(false); + } + catch (HttpRequestException ex) + { + throw TwitterApiException.CreateFromException(ex); + } + catch (OperationCanceledException ex) + { + throw TwitterApiException.CreateFromException(ex); + } + } + public async Task> PostLazyAsync(Uri uri, IDictionary param) { var requestUri = new Uri(RestApiBase, uri);