public override async Task InvokeAsync(MethodInfo targetMethod, object[] args) { var argInfos = InitArgumentInfos(targetMethod.GetParameters(), args); var urlTemplate = _urlBuilder.GetUrlTemplate(targetMethod); var requestMessage = HttpRequestUtil.BuildHttpRequestMessage(_httpConfig?.RequestHeaders, argInfos, urlTemplate); _logger?.LogDebug("Request url:{0} {1}", requestMessage.Method, requestMessage.RequestUri.AbsoluteUri); await _httpClient.SendAsync(requestMessage); }
public override async Task <T> InvokeAsyncT <T>(MethodInfo targetMethod, object[] args) { var argInfos = InitArgumentInfos(targetMethod.GetParameters(), args); var urlTemplate = _urlBuilder.GetUrlTemplate(targetMethod); var requestMessage = HttpRequestUtil.BuildHttpRequestMessage(_httpConfig?.RequestHeaders, argInfos, urlTemplate); _logger?.LogDebug("Request url:{0} {1}", requestMessage.Method, requestMessage.RequestUri.AbsoluteUri); var response = await _httpClient.SendAsync(requestMessage); var content = await response.Content.ReadAsStringAsync(); return(ConvertUtil.DeserializeObject <T>(content)); }
public override object Invoke(MethodInfo targetMethod, object[] args) { //if the method is 'Config',then save the config data and return this instance for the next invoke if (IsConfigMethod(targetMethod, args)) { _httpConfig = args[0] as HttpConfig; _httpClient.Timeout = _httpConfig.Timeout; return(this); } var argInfos = InitArgumentInfos(targetMethod.GetParameters(), args); var urlTemplate = _urlBuilder.GetUrlTemplate(targetMethod); var requestMessage = HttpRequestUtil.BuildHttpRequestMessage(_httpConfig?.RequestHeaders, argInfos, urlTemplate); _logger?.LogDebug("Request url:{0} {1}", requestMessage.Method, requestMessage.RequestUri.AbsoluteUri); var response = _httpClient.SendAsync(requestMessage).ConfigureAwait(false).GetAwaiter().GetResult(); var content = response.Content.ReadAsStringAsync().ConfigureAwait(false).GetAwaiter().GetResult(); return(ConvertUtil.DeserializeObject(targetMethod.ReturnType, content)); }