fix: Request send optimize

master
tongg 8 months ago
parent c81564f355
commit e5e1498e17
  1. 23
      Model/Services/SOCClientService.cs

@ -63,11 +63,15 @@ namespace SparkClient.Model.Services
/// </summary> /// </summary>
/// <param name="url">请求的完整URL</param> /// <param name="url">请求的完整URL</param>
/// <returns>HTTP响应</returns> /// <returns>HTTP响应</returns>
private async Task<HttpSendResult> SendGetRequestAsync(string url) private async Task<HttpSendResult> SendGetRequestAsync(string url, string sendCode = "")
{ {
if (sendCode.IsNullOrEmpty())
{
sendCode = url.GenerateSign();
}
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
Logger.Info($"Request sent to URL: {url}"); Logger.Info($"[SendCode={sendCode}]Request sent to URL: {url}");
client.DefaultRequestHeaders.Add("Authorization", "Basic " + _authToken); client.DefaultRequestHeaders.Add("Authorization", "Basic " + _authToken);
client.Timeout = new TimeSpan(0, 0, 30); client.Timeout = new TimeSpan(0, 0, 30);
HttpResponseMessage result = await client.GetAsync(url); HttpResponseMessage result = await client.GetAsync(url);
@ -76,13 +80,13 @@ namespace SparkClient.Model.Services
string responseBody = await result.Content.ReadAsStringAsync(); string responseBody = await result.Content.ReadAsStringAsync();
int statusCode = (int)result.StatusCode; int statusCode = (int)result.StatusCode;
// 记录日志 // 记录日志
Logger.Info($"Response: Status={statusCode}, Body={responseBody}"); Logger.Info($"[SendCode={sendCode}]Response: Status={statusCode}, Body={responseBody}");
var tempEntity = JsonConvert.DeserializeObject<ResponseStatus>(responseBody); var tempEntity = JsonConvert.DeserializeObject<ResponseStatus>(responseBody);
if (StatusCodes.PreviousTaskIncomplete.Equals(tempEntity.Status)) if (StatusCodes.PreviousTaskIncomplete.Equals(tempEntity.Status))
{ {
Logger.Info($"S009 请求重试"); Logger.Info($"S009 请求重试");
await Task.Delay(500); await Task.Delay(500);
return await SendGetRequestAsync(url); return await SendGetRequestAsync(url, sendCode);
} }
return new HttpSendResult() return new HttpSendResult()
@ -94,12 +98,14 @@ namespace SparkClient.Model.Services
} }
private async Task<HttpResponseMessage> SendGetRequestImageAsync(string url) private async Task<HttpResponseMessage> SendGetRequestImageAsync(string url)
{ {
string sendCode = url.GenerateSign();
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
Logger.Info($"Request Image Download URL: {url}"); Logger.Info($"[SendCode={sendCode}]Request Image Download URL: {url}");
client.DefaultRequestHeaders.Add("Authorization", "Basic " + _authToken); client.DefaultRequestHeaders.Add("Authorization", "Basic " + _authToken);
return await client.GetAsync(url); var data = await client.GetAsync(url);
Logger.Info($"[SendCode={sendCode}]Request Image Downloaded {data.StatusCode}");
return data;
} }
} }
@ -250,7 +256,8 @@ namespace SparkClient.Model.Services
{ {
var response = await SendGetRequestImageAsync(url); var response = await SendGetRequestImageAsync(url);
int status = (int)response.StatusCode; int status = (int)response.StatusCode;
token.ThrowIfCancellationRequested(); if(token.IsCancellationRequested)
token.ThrowIfCancellationRequested();
switch (status) switch (status)
{ {
case 200: case 200:

Loading…
Cancel
Save