WebApiClient

An open source project based on the HttpClient. You only need to define the c# interface and modify the related features to invoke the client library of the remote http interface asynchronously.

MIT License

Stars
2K
Committers
16

Bot releases are hidden (Show)

WebApiClient -

Published by xljiulang over 6 years ago

  • WebApiClient.JIT、WebApiClient.AOT兼容Laojiu.WebApiClient v1.2.2
  • 减少WebApiClient.AOT.Task内存占用
WebApiClient -

Published by xljiulang over 6 years ago

  • 修复MulitpartTextContent使用了文本编码的问题
  • 修复JsonFormatter反序列化没有应用DataAnnotations规则的问题
WebApiClient -

Published by xljiulang over 6 years ago

  • 修复HttpProxy的GetHashCode的bug,该bug可能会影响到代理的比较
  • 修改.net core2.1下默认使用HttpClientHandler关联HttpClient而不是SocketsHttpHandler
  • 修复JsonFormatter性能极为低下的严重性能问题
  • 重写KeyValueFormatter,使用json.net来实现,支持序列化的对象类型更丰富
  • 增加TagsAttribute参数特性类
WebApiClient -

Published by xljiulang over 6 years ago

  • 修复HttpHandlerOfHttpClientHandler的bug
  • 修改HttpHandlerOfSocketsHttpHandler的一些属性
  • 重构BasicAuth类,新增Authorization基类
  • 移除IApiActionFilter的OnExceptionAsync方法;
  • 重构ApiTask的执行流程和IApiActionFilter的异常监控流程;
WebApiClient -

Published by xljiulang over 6 years ago

  • 增加OAuth授权功能
  • 增加.net core2.1 SocketHttpHandler的支持
  • 增加IHttpHandler接口统一操作各种HttpMessageHandler
  • IApiActionFilter增加异常拦截功能
  • Defaults.HttpClient性能和功能优化
WebApiClient -

Published by xljiulang over 6 years ago

  • 修复UrlEncodedContent可能重复的&连接符号
  • 修复HttpClient.Create创建实例时,api接口的可见性检测
  • 调整各Inteface类型的命名空间
  • 增加MultipartFormContent、JsonContent和XmlContent类型
  • 响应结果ITask<>对象的IObservable支持
  • 增加HttpProxy类型,作为ProxyAttribute默认的代理实现类
  • 增加ProxyValidator类型,用于检测代理服务的可用性
  • 提升PathQueryAttribute的性能
WebApiClient -

Published by xljiulang over 6 years ago

  • ApiReturnAttribute增加可重写的IsSuccessStatusCode方法;
  • HttpHostAttribute修改为可继承,HttpMethodAttribute不再是抽象类;
  • 增加ConcurrentCache类型,HttpApiClient.Create变化为线程安全方法;
  • 增加UrlEncodedContent类型,HttpApiRequestMessage.AddFormFieldAsync性能提高;
  • 增加HeadersAttribute特性,可添加多个请求Header;
WebApiClient -

Published by xljiulang over 6 years ago

  • 增加单元测试,几乎覆盖很有类型和所有公开方法
  • 支持与外部HttpMessageHandler接入
  • 修复xml序列化xml带BOM的bug
  • 修复Json序列化DateTimeFormateAttribute不生效的bug
  • 增加HttpFailureStatusException类型,ApiReturnAttribute设置EnsureSuccessStatusCode为true引发此异常
  • RetryException从继承Exception改为继承HttpRequestException
  • 增加ResultNotMatchException类型,当Retry的WhenResult失败时,作为RetryException的内部异常
WebApiClient -

Published by xljiulang over 6 years ago

  • 修复不能键值序列化KeyValuePair<,>类型的bug
  • 完善异常提示消息
  • 提升cookie支持的完整度
WebApiClient -

Published by xljiulang over 6 years ago

  • 修复HeaderAttribute构造器传入HttpRequestHeader枚举名称错误的问题
  • PathQueryAttribue增加Encoding属性
  • HttpApiRequestMessage增加AddQuery的Encoding参数重载
WebApiClient -

Published by xljiulang over 6 years ago

此版本主要修改底层HttpClientHandler在不同框架的表现一致性

  • HttpApiClient.ConnectionLimit设置在不同框架都生效 (原有只对Net45生效)
  • 配置默认不验证服务端的证书 (Net45下使用WebRequestHandler替代原来的HttpClientHandler来实现)
  • 取消GZIP压缩请求的默认设置 (win7x64 netcore20 GZIP开启,性能只有不开启的1/3)
WebApiClient -

Published by xljiulang over 6 years ago

  • 增加[IgnoreWhenNullAttribute]的DataAnnotation特性
  • FormFieldAttribute、MulitpartTexAttribute、FormField、MulitpartText增加IgnoreWhenNull属性
  • 所有DataAnnotation特性均可配置FormatScope
  • 公开ApiInterceptor对象,HttpApiClient支持自定义IApiInterceptor
  • HttpApiClient.Create的缓存优化
  • 完善demo
WebApiClient -

Published by xljiulang almost 7 years ago

  • WebApiClient.Defaults.HttpClient支持接入外部Handler实例
  • 全新的Middleware思想开发的KeyValueFormatter
  • HttpClientConfig增加Tags属性,访问HttpClient对象线程安全
  • ApiActionContext增加Tags属性,表示本次请求相关的自定义数据的存储和访问容器
WebApiClient -

Published by xljiulang almost 7 years ago

第一个长期支持的版本,所有重要的类和Api未来版本都将保持支持。

新增

  • GlobalFilters(全局过滤器的容器)
  • IApiActionFilter接口
  • ApiActionDescriptor和ApiparameterDescriptor增加Member属性
  • 接口实例对象派生于HttpApiClient
  • HttpResponseMessage类型的扩展方法
  • IHttpClient增加SetCookie方法
  • KeyValue序列化支持KeyValuePair类型
  • 支持NetStandard2.0

修改

  • 更新mime表
  • ApiparameterDescriptor移除ExecuteAsync方法
  • 公开WebApiClient.Defaults.HttpClient对象
  • 公开各个Formatter对象,在WebApiClient.Defaults空间下
  • namespace重新划分

修复

  • 动态创建接口代理程序集在某些支行时不支持多模块的异常
  • HttpContent特性参数位置在后面影响到请求内容的正确性