コード例 #1
0
        public async Task <HttpResponseMessage> DeleteAsync(string uri, string authorizationToken = null, string authorizationMethod = "Bearer", IDictionary <string, string> dictionary = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            using (var tracer = new Hummingbird.Extensions.Tracing.Tracer("HTTP DELETE"))
            {
                uri = await _httpUrlResolver.Resolve(uri);

                tracer.SetComponent(_compomentName);
                tracer.SetTag("http.url", uri);
                tracer.SetTag("http.method", "DELETE");

                var requestMessage = new HttpRequestMessage(HttpMethod.Delete, uri);

                SetAuthorizationHeader(requestMessage);

                if (authorizationToken != null)
                {
                    requestMessage.Headers.Authorization = new AuthenticationHeaderValue(authorizationMethod, authorizationToken);
                }

                if (dictionary != null)
                {
                    foreach (var key in dictionary.Keys)
                    {
                        requestMessage.Headers.Add(key, dictionary[key]);
                    }
                }

                var response = await _client.SendAsync(requestMessage, cancellationToken);

                var responseContent = await response.Content.ReadAsStringAsync();

                #region LOG:记录返回
                tracer.SetTag("http.status_code", (int)response.StatusCode);

                if (dictionary != null && dictionary.ContainsKey("x-masking") && (dictionary["x-masking"] == "all" || dictionary["x-masking"] == "response"))
                {
                    //日志脱敏不记录
                }
                else
                {
                    _logger.LogInformation("Http Request Executed :{responseContent}", responseContent);
                }
                #endregion

                if (response.StatusCode == HttpStatusCode.InternalServerError)
                {
                    throw new HttpRequestException(response.ReasonPhrase);
                }

                return(response);
            }
        }
コード例 #2
0
 private async Task <string> ResolveUri(string uri)
 {
     return(await _httpUrlResolver.Resolve(uri));
 }