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)
Task<Stream> GetStreamAsync(Uri uri, IDictionary<string, string> param);
+ Task<Stream> GetStreamingStreamAsync(Uri uri, IDictionary<string, string> param);
+
Task<LazyJson<T>> PostLazyAsync<T>(Uri uri, IDictionary<string, string> param);
Task<LazyJson<T>> PostLazyAsync<T>(Uri uri, IDictionary<string, string> param, IDictionary<string, IMediaItem> media);
}
}
+ public async Task<Stream> GetStreamingStreamAsync(Uri uri, IDictionary<string, string> 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<LazyJson<T>> PostLazyAsync<T>(Uri uri, IDictionary<string, string> param)
{
var requestUri = new Uri(RestApiBase, uri);