From 4930bcaf768cd94144bbad18c325b780f0292a8b Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Thu, 15 Feb 2024 18:14:50 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=AE=8C=E5=96=84=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/WechatApi/Migration_V3.md | 27 +++++++++++++++++++++++- docs/WechatTenpayV3/Migration_V3.md | 32 ++++++++++++++++++++++++++++- docs/WechatWork/Migration_V3.md | 27 +++++++++++++++++++++++- 3 files changed, 83 insertions(+), 3 deletions(-) diff --git a/docs/WechatApi/Migration_V3.md b/docs/WechatApi/Migration_V3.md index e31ab1e8..e8456e11 100644 --- a/docs/WechatApi/Migration_V3.md +++ b/docs/WechatApi/Migration_V3.md @@ -33,12 +33,22 @@ request.WithTimeout(TimeSpan.FromMinutes(2)); ```csharp /* v2.x 读取单个响应原始状态码 */ int statusCode = response.RawStatus; +/* v2.x 读取单个响应原始响应标头 */ +IDictionary headers = response.RawHeaders; +/* v2.x 读取单个响应原始响应体 */ +byte[] bytes = response.RawBytes; /* v3.x 读取单个响应原始状态码 */ int statusCode = response.GetRawStatus(); +/* v3.x 读取单个响应原始响应标头 */ +HttpHeaderCollection headers = response.GetRawHeaders(); +/* v3.x 读取单个响应原始响应体 */ +byte[] bytes = response.GetRawBytes(); ``` -### 新的构造器模式(设置 `HttpClient`) +需要注意的是,上述 Get 方法返回的均为同一个对象引用,因此请不要在获取后尝试修改它们的内容。 + +### 新的构造器模式(配置 `HttpClient`) 随着 `Flurl.Http` 的升级,原有的与 `IHttpClientFactory` 集成的方式发生了根本性的改变。 @@ -56,6 +66,21 @@ var options = new WechatApiClientOptions() { /* 具体配置项略 */ }; var client = new WechatApiClient(options); ``` +### 新的异常类型 + +公共组件中提供了如下的异常类型: + +- `CommonException`:异常基类。 +- `CommonHttpException`:执行 HTTP 请求时引发的异常。 +- `CommonTimeoutException`:超时引发的异常。 +- `CommonSerializationException`:序列化或反序列化时引发的异常。 +- `CommonInterceptorCallException`:拦截器引发的异常。 + +模块内更加细化的异常信息,统一由 `WechatApiException` 异常类型包装,但废弃并移除了其派生的异常类型: + +- `WechatApiRequestTimeoutException` +- `WechatApiEventSerializationException` + ### 基础类型:`SKIT.FlurlHttpClient.Primitives.EncodedeString` 在进行加解密或哈希等操作时,参与运算的数据和最终得到的结果通常是字节数组(即 `byte[]`)形式。而在实际应用中,我们常常需要将这些字节序列转换成文本格式。我们发现即便是同一种加解密或哈希算法,在不同平台上所需要的编码方式也可能不同。比如同为 SHA256,在某些接口中需要转换为十六进制(HEX)编码传参,而在另一些接口中却需要转换为 Base64 编码传参。 diff --git a/docs/WechatTenpayV3/Migration_V3.md b/docs/WechatTenpayV3/Migration_V3.md index ed36cc19..c0994728 100644 --- a/docs/WechatTenpayV3/Migration_V3.md +++ b/docs/WechatTenpayV3/Migration_V3.md @@ -33,12 +33,22 @@ request.WithTimeout(TimeSpan.FromMinutes(2)); ```csharp /* v2.x 读取单个响应原始状态码 */ int statusCode = response.RawStatus; +/* v2.x 读取单个响应原始响应标头 */ +IDictionary headers = response.RawHeaders; +/* v2.x 读取单个响应原始响应体 */ +byte[] bytes = response.RawBytes; /* v3.x 读取单个响应原始状态码 */ int statusCode = response.GetRawStatus(); +/* v3.x 读取单个响应原始响应标头 */ +HttpHeaderCollection headers = response.GetRawHeaders(); +/* v3.x 读取单个响应原始响应体 */ +byte[] bytes = response.GetRawBytes(); ``` -### 新的构造器模式(设置 `HttpClient`) +需要注意的是,上述 Get 方法返回的均为同一个对象引用,因此请不要在获取后尝试修改它们的内容。 + +### 新的构造器模式(配置 `HttpClient`) 随着 `Flurl.Http` 的升级,原有的与 `IHttpClientFactory` 集成的方式发生了根本性的改变。 @@ -56,6 +66,26 @@ var options = new WechatTenpayClientOptions() { /* 具体配置项略 */ }; var client = new WechatTenpayClient(options); ``` +### 新的异常类型 + +公共组件中提供了如下的异常类型: + +- `CommonException`:异常基类。 +- `CommonHttpException`:执行 HTTP 请求时引发的异常。 +- `CommonTimeoutException`:超时引发的异常。 +- `CommonSerializationException`:序列化或反序列化时引发的异常。 +- `CommonInterceptorCallException`:拦截器引发的异常。 + +模块内更加细化的异常信息,统一由 `WechatTenpayException` 异常类型包装,但废弃并移除了其派生的异常类型: + +- `WechatTenpayRequestTimeoutException` +- `WechatTenpayRequestEncryptionException` +- `WechatTenpayRequestSignatureException` +- `WechatTenpayResponseDecryptionException` +- `WechatTenpayResponseVerificationException` +- `WechatTenpayEventDecryptionException` +- `WechatTenpayEventVerificationException` + ### 基础类型:`SKIT.FlurlHttpClient.Primitives.EncodedeString` 在进行加解密或哈希等操作时,参与运算的数据和最终得到的结果通常是字节数组(即 `byte[]`)形式。而在实际应用中,我们常常需要将这些字节序列转换成文本格式。我们发现即便是同一种加解密或哈希算法,在不同平台上所需要的编码方式也可能不同。比如同为 SHA256,在某些接口中需要转换为十六进制(HEX)编码传参,而在另一些接口中却需要转换为 Base64 编码传参。 diff --git a/docs/WechatWork/Migration_V3.md b/docs/WechatWork/Migration_V3.md index d8e4816d..020c22c5 100644 --- a/docs/WechatWork/Migration_V3.md +++ b/docs/WechatWork/Migration_V3.md @@ -33,12 +33,22 @@ request.WithTimeout(TimeSpan.FromMinutes(2)); ```csharp /* v2.x 读取单个响应原始状态码 */ int statusCode = response.RawStatus; +/* v2.x 读取单个响应原始响应标头 */ +IDictionary headers = response.RawHeaders; +/* v2.x 读取单个响应原始响应体 */ +byte[] bytes = response.RawBytes; /* v3.x 读取单个响应原始状态码 */ int statusCode = response.GetRawStatus(); +/* v3.x 读取单个响应原始响应标头 */ +HttpHeaderCollection headers = response.GetRawHeaders(); +/* v3.x 读取单个响应原始响应体 */ +byte[] bytes = response.GetRawBytes(); ``` -### 新的构造器模式(设置 `HttpClient`) +需要注意的是,上述 Get 方法返回的均为同一个对象引用,因此请不要在获取后尝试修改它们的内容。 + +### 新的构造器模式(配置 `HttpClient`) 随着 `Flurl.Http` 的升级,原有的与 `IHttpClientFactory` 集成的方式发生了根本性的改变。 @@ -56,6 +66,21 @@ var options = new WechatWorkClientOptions() { /* 具体配置项略 */ }; var client = new WechatWorkClient(options); ``` +### 新的异常类型 + +公共组件中提供了如下的异常类型: + +- `CommonException`:异常基类。 +- `CommonHttpException`:执行 HTTP 请求时引发的异常。 +- `CommonTimeoutException`:超时引发的异常。 +- `CommonSerializationException`:序列化或反序列化时引发的异常。 +- `CommonInterceptorCallException`:拦截器引发的异常。 + +模块内更加细化的异常信息,统一由 `WechatWorkException` 异常类型包装,但废弃并移除了其派生的异常类型: + +- `WechatWorkRequestTimeoutException` +- `WechatWorkEventSerializationException` + ### 基础类型:`SKIT.FlurlHttpClient.Primitives.EncodedeString` 在进行加解密或哈希等操作时,参与运算的数据和最终得到的结果通常是字节数组(即 `byte[]`)形式。而在实际应用中,我们常常需要将这些字节序列转换成文本格式。我们发现即便是同一种加解密或哈希算法,在不同平台上所需要的编码方式也可能不同。比如同为 SHA256,在某些接口中需要转换为十六进制(HEX)编码传参,而在另一些接口中却需要转换为 Base64 编码传参。