Skip to content

Commit 291b9bb

Browse files
committed
😊 改进请求分析工具,默认只打印 10KB 内容
* 调整 `Method` 谓词拓展方法
1 parent 1bf215f commit 291b9bb

11 files changed

+1260
-1549
lines changed

src/HttpAgent/src/Extensions/HttpRemoteExtensions.cs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -164,10 +164,21 @@ public static string ProfilerGeneralAndHeaders(this HttpResponseMessage httpResp
164164
return null;
165165
}
166166

167+
// 默认只读取 10KB 的内容
168+
const int maxBytesToDisplay = 10240;
169+
170+
// 读取内容为字节数组
171+
var buffer = await httpContent.ReadAsByteArrayAsync(cancellationToken);
172+
173+
// 计算要显示的部分
174+
var bytesToShow = Math.Min(buffer.Length, maxBytesToDisplay);
175+
var partialContent = Encoding.UTF8.GetString(buffer, 0, bytesToShow);
176+
177+
// 如果实际读取的数据小于最大显示大小,则直接返回;否则,添加省略号表示内容被截断
178+
var bodyString = buffer.Length <= maxBytesToDisplay ? partialContent : partialContent + " ... [truncated]";
179+
167180
return StringUtility.FormatKeyValuesSummary(
168-
[
169-
new KeyValuePair<string, IEnumerable<string>>(string.Empty,
170-
[await httpContent.ReadAsStringAsync(cancellationToken)])
171-
], $"{summary} ({httpContent.GetType().Name})");
181+
[new KeyValuePair<string, IEnumerable<string>>(string.Empty, [bodyString])],
182+
$"{summary} ({httpContent.GetType().Name})");
172183
}
173184
}

src/HttpAgent/src/HttpAgent.xml

Lines changed: 288 additions & 288 deletions
Large diffs are not rendered by default.

src/HttpAgent/src/Managers/FileDownloadManager.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,7 @@ internal void Start(CancellationToken cancellationToken = default)
9797
try
9898
{
9999
// 发送 HTTP 远程请求
100-
var httpResponseMessage = _httpRemoteService.Send(RequestBuilder,
101-
HttpCompletionOption.ResponseHeadersRead,
100+
var httpResponseMessage = _httpRemoteService.Send(RequestBuilder, HttpCompletionOption.ResponseHeadersRead,
102101
cancellationToken);
103102

104103
// 根据文件是否存在及配置的行为来决定是否应继续进行文件下载
@@ -212,8 +211,7 @@ internal async Task StartAsync(CancellationToken cancellationToken = default)
212211
{
213212
// 发送 HTTP 远程请求
214213
var httpResponseMessage = await _httpRemoteService.SendAsync(RequestBuilder,
215-
HttpCompletionOption.ResponseHeadersRead,
216-
cancellationToken);
214+
HttpCompletionOption.ResponseHeadersRead, cancellationToken);
217215

218216
// 根据文件是否存在及配置的行为来决定是否应继续进行文件下载
219217
if (!ShouldContinueWithDownload(httpResponseMessage, out var destinationPath))

src/HttpAgent/src/Managers/ServerSentEventsManager.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,7 @@ internal void Start(CancellationToken cancellationToken = default)
101101
try
102102
{
103103
// 发送 HTTP 远程请求
104-
var httpResponseMessage = _httpRemoteService.Send(RequestBuilder,
105-
HttpCompletionOption.ResponseHeadersRead,
104+
var httpResponseMessage = _httpRemoteService.Send(RequestBuilder, HttpCompletionOption.ResponseHeadersRead,
106105
cancellationToken);
107106

108107
// 获取 HTTP 响应体中的内容流
@@ -204,8 +203,7 @@ internal async Task StartAsync(CancellationToken cancellationToken = default)
204203
{
205204
// 发送 HTTP 远程请求
206205
var httpResponseMessage = await _httpRemoteService.SendAsync(RequestBuilder,
207-
HttpCompletionOption.ResponseHeadersRead,
208-
cancellationToken);
206+
HttpCompletionOption.ResponseHeadersRead, cancellationToken);
209207

210208
// 获取 HTTP 响应体中的内容流
211209
await using var contentStream = await httpResponseMessage.Content.ReadAsStreamAsync(cancellationToken);

src/HttpAgent/src/Services/HttpRemoteService.HttpMethods.cs

Lines changed: 370 additions & 492 deletions
Large diffs are not rendered by default.

src/HttpAgent/src/Services/HttpRemoteService.cs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,7 @@ public Task<HttpResponseMessage> SendAsync(HttpRequestBuilder httpRequestBuilder
9595

9696
/// <inheritdoc />
9797
public async Task<HttpResponseMessage> SendAsync(HttpRequestBuilder httpRequestBuilder,
98-
HttpCompletionOption completionOption,
99-
CancellationToken cancellationToken = default)
98+
HttpCompletionOption completionOption, CancellationToken cancellationToken = default)
10099
{
101100
// 发送 HTTP 远程请求
102101
var (httpResponseMessage, _) = await SendCoreAsync(httpRequestBuilder, completionOption,
@@ -152,8 +151,8 @@ public async Task<HttpResponseMessage> SendAsync(HttpRequestBuilder httpRequestB
152151
SendAs<string>(httpRequestBuilder, completionOption, cancellationToken);
153152

154153
/// <inheritdoc />
155-
public byte[]?
156-
SendAsByteArray(HttpRequestBuilder httpRequestBuilder, CancellationToken cancellationToken = default) =>
154+
public byte[]? SendAsByteArray(HttpRequestBuilder httpRequestBuilder,
155+
CancellationToken cancellationToken = default) =>
157156
SendAs<byte[]>(httpRequestBuilder, cancellationToken);
158157

159158
/// <inheritdoc />
@@ -177,8 +176,7 @@ public byte[]?
177176

178177
/// <inheritdoc />
179178
public async Task<TResult?> SendAsAsync<TResult>(HttpRequestBuilder httpRequestBuilder,
180-
HttpCompletionOption completionOption,
181-
CancellationToken cancellationToken = default)
179+
HttpCompletionOption completionOption, CancellationToken cancellationToken = default)
182180
{
183181
// 发送 HTTP 远程请求
184182
var (httpResponseMessage, requestDuration) = await SendCoreAsync(httpRequestBuilder, completionOption,
@@ -224,8 +222,7 @@ public byte[]?
224222

225223
/// <inheritdoc />
226224
public Task<byte[]?> SendAsByteArrayAsync(HttpRequestBuilder httpRequestBuilder,
227-
HttpCompletionOption completionOption,
228-
CancellationToken cancellationToken = default) =>
225+
HttpCompletionOption completionOption, CancellationToken cancellationToken = default) =>
229226
SendAsAsync<byte[]>(httpRequestBuilder, completionOption, cancellationToken);
230227

231228
/// <inheritdoc />
@@ -278,8 +275,7 @@ public byte[]?
278275

279276
/// <inheritdoc />
280277
public async Task<object?> SendAsAsync(Type resultType, HttpRequestBuilder httpRequestBuilder,
281-
HttpCompletionOption completionOption,
282-
CancellationToken cancellationToken = default)
278+
HttpCompletionOption completionOption, CancellationToken cancellationToken = default)
283279
{
284280
// 发送 HTTP 远程请求
285281
var (httpResponseMessage, requestDuration) = await SendCoreAsync(httpRequestBuilder, completionOption,
@@ -339,8 +335,7 @@ public Task<HttpRemoteResult<TResult>> SendAsync<TResult>(HttpRequestBuilder htt
339335

340336
/// <inheritdoc />
341337
public async Task<HttpRemoteResult<TResult>> SendAsync<TResult>(HttpRequestBuilder httpRequestBuilder,
342-
HttpCompletionOption completionOption,
343-
CancellationToken cancellationToken = default)
338+
HttpCompletionOption completionOption, CancellationToken cancellationToken = default)
344339
{
345340
// 发送 HTTP 远程请求
346341
var (httpResponseMessage, requestDuration) = await SendCoreAsync(httpRequestBuilder, completionOption,

0 commit comments

Comments
 (0)