当前位置: 首页 > news >正文

网站开发避免dns劫持百度竞价广告点击器

网站开发避免dns劫持,百度竞价广告点击器,网站制作优化济南,wordpress角色权限参考原文地址:Managing Clients - Flurl 管理客户端 Flurl.Http 构建在堆栈之上System.Net.Http。如果您熟悉HttpClient,那么您可能听说过这个建议:不要为每个请求创建一个新客户端;重复使用它们,否则将面临后…

参考原文地址:Managing Clients - Flurl

管理客户端
        Flurl.Http 构建在堆栈之上System.Net.Http。如果您熟悉HttpClient,那么您可能听说过这个建议:不要为每个请求创建一个新客户端;重复使用它们,否则将面临后果。AFlurlClient包装单个HttpClient并绑定到相同的生命周期,因此建议是相似的。

无客户端使用
        如果您不想FlurlClient显式管理实例,则不需要;Flurl 会为你做这件事。事实上,在该网站的大多数示例中,客户端都明显缺席:

var result = await "https://some-api.com".GetJsonAsync<T>();

        但就像术语“无服务器”一样,Flurl 的“无客户端”模式并不意味着实际上没有客户端 - 它只是意味着您不需要显式处理它,并且您可以相信它正在被巧妙地管理。为此,Furll 使用 缓存并重用客户端实例FlurlHttp.Clients,这是 的全局单例实例IFlurlClientCache。客户端可以在启动时预先配置: 

FlurlHttp.ConfigureClientForUrl("https://some-api.com").WithSettings(settings => ...).WithHeaders(...)

注意:配置WithSettings部分详细介绍了其他相关方法。

        使用无客户端模式,对同一主机(或更准确地说,方案/主机/端口的相同组合)的所有调用都将重用同一客户端。任何客户端级别的配置(例如默认标头)都将伴随对该主机的所有调用。如果需要,您可以更改此缓存策略。例如,也许您希望对服务的每个版本使用不同的客户端,可通过自定义请求标头进行识别:

FlurlHttp.UseClientCachingStrategy(request =>// get the default host-based key by invoking the default caching strategy:var name = FlurlHttp.BuildClientNameByHost(request);// append the service version from a custom request header, if it exists:if (request.Headers.TryGetFirst("X-Service-Version", out var version))return $"{name}:{version}";return name;
});

        使用自定义缓存策略时,请确保在任何调用之前UseClientCachingStrategy调用.ConfigureClientForUrl

显式用法
        许多开发人员,尤其是那些想要严格遵守依赖注入原则的开发人员,可能会对管理客户端的全局静态上下文的存在感到厌烦,认为这可能导致更紧密的耦合并使系统更难以测试。由于这些原因,Flurl 支持另一种使用模式,其中客户端管理是明确的(并且几乎同样简单):

var client = new FlurlClient("https://some-api.com") // a base URL is optional.WithSettings(settings => ...).WithHeaders(...);var result = await client.Request("path").GetJsonAsync<T>();

        在这里,该Request方法(采用零个或多个字符串作为 的快捷方式AppendPathSegments)创建一个IFlurlRequest对象 - 与无客户端示例中的字符串扩展方法创建的对象相同。因此,在任何一种情况下都可以使用所有相同的流畅、可链接的方法。

使用依赖注入
        为了使 Flurl 完全对 DI 友好,仍然存在一个问题:我们不想new从我们的服务类内部启动该客户端;我们想注入一些东西。这里推荐的方法是IFlurlClientCache向容器注册为单例,绑定到组合根FlurlClientCache并可选地从组合根进行配置,然后注入到您的服务中。IFlurlClientCache支持命名客户端,这在概念上与 IHttpClientFactory 的命名客户端非常相似。

// at service registration:
services.AddSingleton<IFlurlClientCache>(sp => new FlurlClientCache().Add("MyCli", "https://some-api.com"));// in service class:
public class MyService : IMyService
{private readonly IFlurlClient _flurlCli;public MyService(IFlurlClientCache clients) {_flurlCli = clients.Get("MyCli");}
}

         与无客户端模式非常相似,所有客户端都由单个IFlurlClientCache. 但该单例现在由 IoC 容器而不是静态对象控制FlurlHttp。赢!

        在上面的示例中,clients.Get如果尚未创建指定的客户端(在本示例中是在服务注册时),则会引发异常。但在启动时预先创建客户端并不是严格要求的 -GetOrAdd可以改为使用:

_flurlCli = clients.GetOrAdd("MyCli", "https://some-api.com");

         和Add都GetOrAdd支持可选的第三个参数 -Action<IFlurlClientBuilder>允许您(懒惰地)配置客户端:

.Add("MyCli", "https://some-api.com", builder => builder.WithSettings(settings => ...).WithHeaders(...)

 翻译的可能不够准确,请见谅,请阅读原文:Managing Clients - Flurl,希望本文对你有帮助。

http://www.wangmingla.cn/news/108741.html

相关文章:

  • 黄山公司做网站河北seo平台
  • wordpress应用软件下载主题合肥百度搜索排名优化
  • 做网站建设电话销售深圳网站建设推广
  • 太原建设局网站他达那非片能延时多久
  • 昆明网站建设多少钱关键词完整版免费听
  • 做的很不好的网站百度的seo排名怎么刷
  • asp.net 窗体网站中国百强城市榜单
  • 苗木企业网站建设源代码 园林网站源码程序 苗圃花卉网站制作源码培训班该如何建站
  • 在青岛注册公司条件百度seo怎么做网站内容优化
  • 个人做网站 需要学什么只是chatgpt网站
  • 是不是做网站就能赚钱图片外链生成
  • 做flash网站框架引擎湖南搜索引擎推广平台
  • 建站技术论坛优化关键词排名软件
  • 哈尔滨建设网站门户购买一个网站域名需要多少钱
  • 网站开发页面布局沈阳优化网站公司
  • 乐清新闻今日头条搜索引擎优化服务公司哪家好
  • 济南模板网站百度学术搜索入口
  • 域名备案网站服务内容大的网站建设公司
  • 怎样做网站操作向导百度竞价推广流程
  • 政府网站改版升级建设方案设计网站免费素材
  • 武汉做网站最牛的公司秦皇岛seo优化
  • 网站首页的滚动图片怎么做的百度搜索资源平台
  • 凡客建网站个人免费开发网站
  • 互联网网站建设计划书广告联盟app下载赚钱
  • b2b免费发布网站大全官网广州品牌营销策划公司排名
  • 做调查问卷哪个网站好网站建设开发公司
  • tp3.2.3网站开发实例代写文章的平台有哪些
  • 自适应手机网站 cssseo快速工具
  • 4399页游网站网络优化工程师是干什么的
  • logo设计在线生成免费免费seo实战培训学校