mirror of
https://github.com/anjoy8/Blog.Core.git
synced 2024-09-20 23:48:27 +08:00
🎨 优化响应流读取,兼容MemoryStream
This commit is contained in:
parent
afb9a0d9f5
commit
c85f51a901
|
@ -7,29 +7,29 @@ namespace Blog.Core.Common.Extensions;
|
|||
|
||||
public static class HttpResponseExceptions
|
||||
{
|
||||
public static string GetResponseBody(this HttpResponse response)
|
||||
{
|
||||
if (response is null)
|
||||
{
|
||||
return default;
|
||||
}
|
||||
public static string GetResponseBody(this HttpResponse response)
|
||||
{
|
||||
if (response is null)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
if (response.Body is FluentHttpResponseStream responseBody)
|
||||
{
|
||||
response.Body.Position = 0;
|
||||
//不关闭底层流
|
||||
using StreamReader stream = new StreamReader(responseBody, leaveOpen: true);
|
||||
string body = stream.ReadToEnd();
|
||||
response.Body.Position = 0;
|
||||
return body;
|
||||
}
|
||||
else
|
||||
{
|
||||
//原始HttpResponseStream 无法读取
|
||||
//实际上只是个包装类,内部使用了HttpResponsePipeWriter write
|
||||
throw new ApplicationException("The response body is not a FluentHttpResponseStream");
|
||||
}
|
||||
|
||||
return default;
|
||||
}
|
||||
//原始HttpResponseStream 无法读取
|
||||
//实际上只是个包装类,内部使用了HttpResponsePipeWriter write
|
||||
switch (response.Body)
|
||||
{
|
||||
case FluentHttpResponseStream:
|
||||
case MemoryStream:
|
||||
{
|
||||
response.Body.Position = 0;
|
||||
using var stream = new StreamReader(response.Body, leaveOpen: true);
|
||||
var body = stream.ReadToEnd();
|
||||
response.Body.Position = 0;
|
||||
return body;
|
||||
}
|
||||
default:
|
||||
// throw new ApplicationException("The response body is not a FluentHttpResponseStream");
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user