2 Star 0 Fork 2

yus1977 / DotNet-HttpWebApiTest

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

HttpClient和WebApiClient使用Demo

  1. .NetCore内置的HttpClient使用
  2. 开源组件WebApiClient使用

1 HttpClient使用

使用说明:

注意,创建的HttpClient默认使用的HttpClientHandler(HttpMessageHandler)会保存2分钟的会话,同时提交时会自动带HttpClent缓存的Cookies 可以使用下面的代码在HttpClient注入时配置 HttpClientHandler

            //默认的HttpMessageHandler会自动保持2分钟会话和cookies,SSO应用不需要保持Cookies
            .ConfigurePrimaryHttpMessageHandler(h => {
                var handler = new HttpClientHandler();
                handler.UseDefaultCredentials = false;
                handler.UseCookies = false;
                return handler;
            });

2 WebApiClient使用

一个开源项目,基于HttpClient封装,只需要定义c#接口并修饰相关特性,即可异步调用远程http接口的客户端库 源代码和使用说明:

需要安装包有:

//WebApiClient 基本包
install-package WebApiClient.JIT
//HttpClientFactory扩展
install-package WebApiClient.Extensions.HttpClientFactory
//或 DependencyInjection扩展
install-package WebApiClient.Extensions.DependencyInjection

主要使用步骤:

  1. 声明接口,把远程Url映射成本地可以使用的接口
    参看MyApi/IMyWebApi

  2. 注册或创建接中映射和初始化配置

方式1:在启用时注册到DI中,比如

            services.AddHttpApiTypedClient<IMyWebApi>(c =>
            {
                c.HttpHost = new Uri("http://localhost:5000/");
                //统一设置日期输出格式
                //会覆盖返回的Model中设置的格式
                c.FormatOptions.DateTimeFormat = "yyyy-MM-dd HH:mm:ss.fff";

                //统一设置HttpClient的默认请求头
                //客户端类别
                c.HttpClient.DefaultRequestHeaders.Add(Consts.HeaderUserAgent, "HttpClientFactory-Sample");
                //自定义的 客户端ID
                c.HttpClient.DefaultRequestHeaders.Add(Consts.HeaderAppID, "MyApp");
            })
            //默认的HttpMessageHandler会自动保持2分钟会话和cookies
            //SSO应用不需要保持Cookies,所以如下配置
            .ConfigurePrimaryHttpMessageHandler(h => {
                var handler = new HttpClientHandler();
                handler.UseDefaultCredentials = false;
                handler.UseCookies = false;
                return handler;
            });

方式2:使用HttpApi.Register 或 HttpApi.Create 来动态的创建WebApi接口映射 比如:

            //  注册IUserApi 配置其工厂
            HttpApi.Register<IUserApi>().ConfigureHttpApiConfig(c =>
            {
                c.HttpHost = new Uri("http://localhost:9999/");
                c.FormatOptions.DateTimeFormat = DateTimeFormats.ISO8601_WithMillisecond;
            });

           //使用
           var userApi = HttpApi.Resolve<IUserApi>();
  1. 直接调用接口定义的方法,WebApiClient映射成访问远程的Url

空文件

简介

HttpClient和WebApi测试 展开 收起
C#
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C#
1
https://gitee.com/yus1977/DotNet-HttpWebApiTest.git
git@gitee.com:yus1977/DotNet-HttpWebApiTest.git
yus1977
DotNet-HttpWebApiTest
DotNet-HttpWebApiTest
master

搜索帮助