コード例 #1
0
        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());
        }
コード例 #2
0
ファイル: TwitterApiException.cs プロジェクト: karno/Cadena
 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();
 }