protected override async Task <HttpResponseMessage> SendAsync( HttpRequestMessage request, CancellationToken cancellationToken) { var resp = await base.SendAsync(request, cancellationToken).ConfigureAwait(false); if (!resp.IsSuccessStatusCode) { var rstr = await resp.Content.ReadAsStringAsync().ConfigureAwait(false); var json = MeteorJson.Parse(rstr); var ex = new TwitterApiException(resp.StatusCode, rstr); try { if (json.ContainsKey("errors") && json["errors"][0].ContainsKey("code") && json["errors"][0].ContainsKey("message")) { ex = new TwitterApiException(resp.StatusCode, json["errors"][0]["message"].AsString(), (TwitterErrorCode)(int)json["errors"][0]["code"].AsLong()); } } catch { // ignore parse exception } throw ex; } return(resp.EnsureSuccessStatusCode()); }
protected override async Task<HttpResponseMessage> SendAsync( HttpRequestMessage request, CancellationToken cancellationToken) { var resp = await base.SendAsync(request, cancellationToken).ConfigureAwait(false); if (!resp.IsSuccessStatusCode) { var rstr = await resp.Content.ReadAsStringAsync().ConfigureAwait(false); var json = MeteorJson.Parse(rstr); var ex = new TwitterApiException(resp.StatusCode, rstr); try { if (json.ContainsKey("errors") && json["errors"][0].ContainsKey("code") && json["errors"][0].ContainsKey("message")) { ex = new TwitterApiException(resp.StatusCode, json["errors"][0]["message"].AsString(), (TwitterErrorCode)(int)json["errors"][0]["code"].AsLong()); } } catch { // ignore parse exception } throw ex; } return resp.EnsureSuccessStatusCode(); }