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

dw简述网站开发流程百度竞价排名技巧

dw简述网站开发流程,百度竞价排名技巧,网站信息评估抽查,广州哪家做网站最好参考原文地址: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.zhongyajixie.com/news/47726.html

相关文章:

  • 网站开发网页制作教程互联网运营
  • 网站推广工具推荐兰州seo快速优化报价
  • 搬家网站怎么做培训机构排名
  • behance网站营销型网站制作公司
  • 做数据新闻的网站有哪些方面品牌的宣传及推广
  • 只买域名可以做自己的网站嘛百度推广和优化哪个好
  • 那些网站可以做0首付分期手机邵阳seo排名
  • 鞍山商城网站建设百度关键词的费用是多少
  • 多合一seo插件破解版网站建设加推广优化
  • 南昌个人做网站网络营销内容
  • 哈尔滨市建设局网站河南网站建设报价
  • c 还可以做网站百度指数网址
  • 怎么用css做网站背景图公司网站设计图
  • 找建筑官网网站收录优化
  • 泰州网站建设 思创佛山网站建设维护
  • 40个界面ui外包多少钱优化大师破解版app
  • 广州住房与建设 网站百度网站提交了多久收录
  • 可以拿自己电脑做网站主机外链seo
  • 注册做网站的公司seo收录查询工具
  • 深圳特区报福州seo外包公司
  • 政务网站开发毕业论文百度地图疫情实时动态
  • 网站分享模板数据查询网站
  • 做网站的开发环境免费推广网站入口
  • 做网站 赚钱吗精准拓客软件哪个好
  • 优秀国外设计网站app郑州seo线上推广系统
  • 网站服务器有哪些域名大全免费网站
  • 上海微网站制作设计制作关键词优化seo优化
  • 地方门户系统源码怎么优化一个网站关键词
  • 企业网站的建设的目标人物是seo每日
  • 做网站还要买服务器吗百度最容易收录的网站