3.26语言与消息属性

全球化是互联网应用产品的发展趋势,因此,面向全球的应用产品应具备国际化功能。发送 HTTP 请求时,可通过添加 Accept-Language 标头来指定客户端偏好的自然语言和区域。

设置客户端偏好的语言和区域#

全球化是互联网应用产品的发展趋势,因此,面向全球的应用产品应具备国际化功能。发送 HTTP 请求时,可通过添加 Accept-Language 标头来指定客户端偏好的自然语言和区域。

cs
HttpRequestBuilder.Get("https://furion.net")    .AcceptLanguage("en-US");HttpRequestBuilder.Get("https://furion.net")    .AcceptLanguage("zh-CN,en;q=0.5");HttpRequestBuilder.Get("https://furion.net")    .AcceptLanguage("fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5");

设置 HttpRequestMessage 属性#

在特定场景下,我们可能需要为 HttpRequestMessage 请求添加额外的属性,而非通过请求标头。这时,可以如下操作:

cs
HttpRequestBuilder.Get("https://furion.net")    .WithProperty("key1", "vallue2")    // 设置单个属性    .WithProperties(new Dictionary<string, object?> {}) // 设置多个属性    .WithProperties(new { id = 1, name = "Furion" });   // 设置多个属性

这些属性会被添加到 HttpRequestMessage 对象的 Options 属性中(参考文档)。要获取这些值,可以这样做:

cs
httpRequestMessage.Options.TryGetValue(new HttpRequestOptionsKey<string>("key1"), out var value);

若属性键出现重复,则后设置的键值会覆盖先前的设置。