public abstract class MirAPIUnitTestCommon
    {
        public abstract string GetBaseAddress();
        /// <summary>
        /// CRUD
        /// </summary>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="api"></param>
        /// <returns></returns>
        protected TResult InvokeRequest<TResult, TArguemnt>(string api, HttpMethod httpMethod, TArguemnt arg)
        {
            using (var invoker = CreateMessageInvoker())
            {
                using (var cts = new CancellationTokenSource())
                {
                    var request = new HttpRequestMessage(httpMethod, api);if (null != arg)
                    {
                        request.Content = new ObjectContent<TArguemnt>(arg, new JsonMediaTypeFormatter());
                    }
                    HttpClient httpClient = new HttpClient();
                    using (HttpResponseMessage response = httpClient.SendAsync(request, cts.Token).Result)
                    {
                        string result = response.Content.ReadAsStringAsync().Result;
                        return JsonConvert.DeserializeObject<TResult>(result);
                    }
                }
            }
        }
        private HttpMessageInvoker CreateMessageInvoker()
        {
            var config = new HttpConfiguration();
            WebApiConfig.Register(config);
            var server = new HttpServer(config);
            var messageInvoker = new HttpMessageInvoker(server);
            return messageInvoker;
        }
    }

 

相关文章:

  • 2021-05-19
  • 2021-09-10
  • 2021-08-23
  • 2021-10-29
  • 2021-10-27
  • 2022-01-12
  • 2021-07-03
  • 2021-10-12
猜你喜欢
  • 2022-12-23
  • 2021-08-07
  • 2021-05-23
  • 2021-08-24
相关资源
相似解决方案