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;
}
}

最新文章

  1. Android使用C++截屏并显示
  2. 原生 CSS 网格布局学习笔记
  3. js 控制表单提交
  4. 【SVN】Error running context: 由于目标计算机积极拒绝,无法连接
  5. thinkphp3.2设置session的过期时间
  6. Oracle logmnr工具分析日志脚本
  7. 数据库的char(n)
  8. Jenkins进阶系列之——06FTP publisher plugin插件下载(支持绝对路径)
  9. HDU 1176免费馅饼 DP数塔问题转化
  10. mybatis insert前获取要插入的值
  11. Microsoft.Practices.Unity 给不同的对象注入不同的Logger
  12. Redis基础学习(五)&mdash;Redis的主从复制
  13. 简陋的 ASP.NET CORE 单页Web应用程序“框架”
  14. [ 面试没回答上的问题2]IOS上给body绑定click事件的bug
  15. Fundebug后端Java异常监控插件更新至0.3.1,修复Maven下载失败的问题
  16. linux 下的init 0,1,2,3,4,5,6知识介绍
  17. D6差分及树上差分
  18. 牛客训练四:Applese 涂颜色(费马小定理+快速幂)
  19. android bundle 对象 序列化
  20. Java堆外内存之五:堆外内存管理类ByteBuffer

热门文章

  1. [Java复习] JVM
  2. Linux-文件系统的简单操作
  3. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_24-CMS前端页面查询开发-使用钩子方法实现立即查询
  4. Qt编写自定义控件33-图片切换动画
  5. [Python]编译错误:编码错误问题(SyntaxError: (unicode error) )
  6. React Native npm第三方报错
  7. Ubuntu+Django+uWSGI+Nginx部署Django项目
  8. 【c++基础】二进制格式输出char类型
  9. ubuntu安装ubuntu-kylin-software-center
  10. 在Flutter中构建布局