From 1896d747b2841143731a605513d72f7aab9d8440 Mon Sep 17 00:00:00 2001 From: wanggaofeng <15601716045@163.com> Date: Fri, 2 Feb 2024 12:09:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HttpClientStudy.Core/HttpError.cs | 37 +++++++++++++++++++---- HttpClientStudy.UnitTest/HttpErrorTest.cs | 8 +++++ 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/HttpClientStudy.Core/HttpError.cs b/HttpClientStudy.Core/HttpError.cs index a9ce7c1..abff74f 100644 --- a/HttpClientStudy.Core/HttpError.cs +++ b/HttpClientStudy.Core/HttpError.cs @@ -18,12 +18,16 @@ namespace HttpClientStudy.Core /// <item> /// <term>Try Catch 方式</term> /// <description>(适用外部)</description> - /// </item> - /// <item> - /// <term>使用 Polly 类库</term> - /// <description>(更多功能)</description> - /// </item> - /// </list> + /// </item> + /// <item> + /// <term>HttpClient 管道</term> + /// <description>(统一处理)</description> + /// </item> + /// <item> + /// <term>使用 Polly 类库</term> + /// <description>(更多功能,也可结合HttpClient管道)</description> + /// </item> + /// </list> /// </summary> /// <remarks> /// 简化处理 @@ -47,6 +51,27 @@ namespace HttpClientStudy.Core return response.StatusCode; } + /// <summary> + /// 没有服务(WebApi服务未启动) + /// </summary> + /// <returns></returns> + public async Task<HttpStatusCode> NoServiceAsync() + { + try + { + var response = await HttpClient.GetAsync("http://localhost:30"); + } + + catch (Exception ex) + { + // 捕获异常,处理 + await Console.Out.WriteLineAsync(ex.Message ); + throw; + } + + return HttpStatusCode.OK; + } + /// <summary> /// 404错误 /// </summary> diff --git a/HttpClientStudy.UnitTest/HttpErrorTest.cs b/HttpClientStudy.UnitTest/HttpErrorTest.cs index 97b00fd..a8acd63 100644 --- a/HttpClientStudy.UnitTest/HttpErrorTest.cs +++ b/HttpClientStudy.UnitTest/HttpErrorTest.cs @@ -24,6 +24,14 @@ namespace HttpClientStudy.UnitTest await Assert.ThrowsAsync<HttpRequestException>(func); } + [Fact] + public async Task NoService_Test() + { + Func<Task> func = _httpError.NoServiceAsync; + + await Assert.ThrowsAsync<HttpRequestException>(func); + } + [Fact] public async Task Http404_Test() {