代码拉取完成,页面将自动刷新
使用说明:
注意,创建的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;
});
一个开源项目,基于HttpClient封装,只需要定义c#接口并修饰相关特性,即可异步调用远程http接口的客户端库 源代码和使用说明:
//WebApiClient 基本包
install-package WebApiClient.JIT
//HttpClientFactory扩展
install-package WebApiClient.Extensions.HttpClientFactory
//或 DependencyInjection扩展
install-package WebApiClient.Extensions.DependencyInjection
声明接口,把远程Url映射成本地可以使用的接口
参看MyApi/IMyWebApi
注册或创建接中映射和初始化配置
方式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>();
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。