public async Task<HttpResponseMessage> GetAsync(string url, SortedDictionary<string, string> parameters)
{
// ensure we have a bearerToken before progressing
if (clientID != null && clientSecret != null && bearerToken == null)
{
await this.StartApplicationOnlyAuth();
}
if (bearerToken == null) return null;
var querystring = parameters.Aggregate("", (current, entry) => current + (entry.Key + "=" + entry.Value + "&"));
var oauth2 = String.Format("Bearer {0}", bearerToken);
var fullUrl = url;
var handler = new HttpClientHandler();
if (handler.SupportsAutomaticDecompression)
{
handler.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
}
var client = new HttpClient(handler);
client.DefaultRequestHeaders.Add("Authorization", oauth2);
client.DefaultRequestHeaders.Add("User-Agent", TwitterApi.UserAgent());
if (!string.IsNullOrWhiteSpace(querystring))
fullUrl += "?" + querystring.TrimLastChar();
var download = client.GetAsync(fullUrl).ToObservable().Timeout(TimeSpan.FromSeconds(waitTimeoutSeconds));
return await download;
}