XFEExtension.NetCore.ServerInteractive
[DLL] Server interaction extension, including user identity verification and querying in conjunction with AutoConfig
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFEExtension.NetCore.ServerInteractive/Implements/Requester/StandardRequestServiceBase.cs
+6
-1
Modified
XFEExtension.NetCore.ServerInteractive/Interfaces/Requester/IStandardRequestService.cs
+9
-2
Modified
XFEExtension.NetCore.ServerInteractive/Options/XFEClientRequesterOptions.cs
+0
-4
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/ClearLogRequestService.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/GetLogRequestService.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/LoginRequestService.cs
+2
-2
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/ReloginRequestService.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/XFEClientRequester.cs
+7
-13
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/XFEClientRequesterBuilder.cs
+0
-1
Modified
XFEExtension.NetCore.ServerInteractive/XFEExtension.NetCore.ServerInteractive.csproj
+5
-5
XFEstudio/XFEExtension.NetCore.ServerInteractive
重构响应处理,移除自动反转义,接口调整
重构 IStandardRequestService 及其实现,新增 Response/UnescapedResponse 属性,AnalyzeResponse 方法不再传递参数,统一通过属性获取响应内容。XFEClientRequester 移除 AutoUnescapeResponse 相关逻辑及配置项,响应处理更清晰。版本号升级至 2.4.0。
0cf11ba
代码差异
10 个文件
+32
-31
@@ -15,11 +15,16 @@ public abstract class StandardRequestServiceBase : IStandardRequestService
15
15
/// <inheritdoc/>
16
16
public string DeviceInfo { get; set; } = string.Empty;
17
17
/// <inheritdoc/>
18
public string UnescapedResponse { get; set; }
19
/// <inheritdoc/>
20
public string Response { get; set; }
21
/// <inheritdoc/>
18
22
public object[] Parameters { get; set; } = [];
19
23
/// <inheritdoc/>
20
24
public XFEClientRequester XFEClientRequester { get; set; }
25
21
26
/// <inheritdoc/>
22
public abstract object AnalyzeResponse(string response);
27
public abstract object AnalyzeResponse();
23
28
24
29
/// <inheritdoc/>
25
30
public abstract object PostRequest();
@@ -18,6 +18,14 @@ public interface IStandardRequestService : IRequestServiceBase
18
18
/// </summary>
19
19
string Session { get; set; }
20
20
/// <summary>
21
/// 返回结果字符串(转义后)
22
/// </summary>
23
string UnescapedResponse { get; set; }
24
/// <summary>
25
/// 返回结果字符串
26
/// </summary>
27
string Response { get; set; }
28
/// <summary>
21
29
/// 待请求的方法的参数列表
22
30
/// </summary>
23
31
object[] Parameters { get; internal set; }
@@ -29,7 +37,6 @@ public interface IStandardRequestService : IRequestServiceBase
29
37
/// <summary>
30
38
/// 接收到返回后解析
31
39
/// </summary>
32
/// <param name="response"></param>
33
40
/// <returns></returns>
34
object AnalyzeResponse(string response);
41
object AnalyzeResponse();
35
42
}
@@ -19,8 +19,4 @@ public class XFEClientRequesterOptions
19
19
/// 电脑信息
20
20
/// </summary>
21
21
public string DeviceInfo { get; set; } = DeviceHelper.GetUniqueHardwareId();
22
/// <summary>
23
/// 自动反转义响应内容(针对XFERequestService和XFEClientInstanceRequest的响应内容进行反转义处理,默认为true)
24
/// </summary>
25
public bool AutoUnescapeResponse { get; set; } = true;
26
22
}
@@ -8,7 +8,7 @@ namespace XFEExtension.NetCore.ServerInteractive.Utilities.Requester.Services;
8
8
public class ClearLogRequestService : StandardRequestServiceBase
9
9
{
10
10
/// <inheritdoc/>
11
public override object AnalyzeResponse(string response) => true;
11
public override object AnalyzeResponse() => true;
12
12
13
13
/// <inheritdoc/>
14
14
public override object PostRequest() => new
@@ -8,7 +8,7 @@ namespace XFEExtension.NetCore.ServerInteractive.Utilities.Requester.Services;
8
8
public class GetLogRequestService : StandardRequestServiceBase
9
9
{
10
10
/// <inheritdoc/>
11
public override object AnalyzeResponse(string response) => response;
11
public override object AnalyzeResponse() => Response;
12
12
13
13
/// <inheritdoc/>
14
14
public override object PostRequest() => new
@@ -18,9 +18,9 @@ public class LoginRequestService<T> : StandardRequestServiceBase where T : IUser
18
18
public LoginRequestService() => _jsonSerializerOptions.Converters.Add(new JsonDateTimeConverter());
19
19
20
20
/// <inheritdoc/>
21
public override object AnalyzeResponse(string response)
21
public override object AnalyzeResponse()
22
22
{
23
var result = JsonSerializer.Deserialize<UserLoginResult<T>>(response, _jsonSerializerOptions);
23
var result = JsonSerializer.Deserialize<UserLoginResult<T>>(Response, _jsonSerializerOptions);
24
24
Session = result!.Session;
25
25
return result;
26
26
}
@@ -16,7 +16,7 @@ public class ReloginRequestService<T> : StandardRequestServiceBase where T : IUs
16
16
/// </summary>
17
17
public ReloginRequestService() => _jsonSerializerOptions.Converters.Add(new JsonDateTimeConverter());
18
18
/// <inheritdoc/>
19
public override object AnalyzeResponse(string response) => JsonSerializer.Deserialize<T>(response, _jsonSerializerOptions)!;
19
public override object AnalyzeResponse() => JsonSerializer.Deserialize<T>(Response, _jsonSerializerOptions)!;
20
20
21
21
/// <inheritdoc/>
22
22
public override object PostRequest() => new
@@ -1,7 +1,5 @@
1
using System.CodeDom.Compiler;
2
using System.Net;
1
using System.Net;
3
2
using System.Text.Json;
4
using System.Text.RegularExpressions;
5
3
using XFEExtension.NetCore.AutoImplement;
6
4
using XFEExtension.NetCore.DelegateExtension;
7
5
using XFEExtension.NetCore.ServerInteractive.Exceptions;
@@ -23,10 +21,6 @@ public abstract class XFEClientRequester : IRequesterBase
23
21
internal Dictionary<string, Func<IStandardRequestService>> StandardRequestServiceDictionary = [];
24
22
internal Dictionary<List<string>, Func<IStandardRequestService>> StandardMultiRequestServiceListDictionary = [];
25
23
internal Dictionary<string, StandardClientInstanceRequest> StandardClientInstanceRequestDictionary = [];
26
/// <summary>
27
/// 自动反转义响应内容(针对XFERequestService和XFEClientInstanceRequest的响应内容进行反转义处理,默认为true)
28
/// </summary>
29
public bool AutoUnescapeResponse { get; set; } = true;
30
24
/// <inheritdoc/>
31
25
public string RequestAddress { get; set; } = string.Empty;
32
26
/// <inheritdoc/>
@@ -83,7 +77,9 @@ public abstract class XFEClientRequester : IRequesterBase
83
77
result.StatusCode = code;
84
78
if (code == HttpStatusCode.OK)
85
79
{
86
var requestResult = xFEService.AnalyzeResponse(response);
80
xFEService.Response = response;
81
xFEService.UnescapedResponse = response;
82
var requestResult = xFEService.AnalyzeResponse();
87
83
MessageReceived?.Invoke(this, new ServerInteractiveEventArgsImpl("Success", code));
88
84
result.Message = "Success";
89
85
result.Result = requestResult;
@@ -98,8 +94,6 @@ public abstract class XFEClientRequester : IRequesterBase
98
94
{
99
95
var (response, code) = await InteractiveHelper.GetServerResponse(RequestAddress, instance.ConstructBody(Session, DeviceInfo, parameters), _jsonSerializerOptions);
100
96
result.StatusCode = code;
101
if (AutoUnescapeResponse)
102
response = Regex.Unescape(response);
103
97
if (code == HttpStatusCode.OK)
104
98
{
105
99
var requestResult = instance.ProcessResponse?.Invoke(response);
@@ -120,12 +114,12 @@ public abstract class XFEClientRequester : IRequesterBase
120
114
instance.DeviceInfo = DeviceInfo;
121
115
instance.Parameters = parameters;
122
116
var (response, code) = await InteractiveHelper.GetServerResponse(RequestAddress, instance.PostRequest(), _jsonSerializerOptions);
123
if (AutoUnescapeResponse)
124
response = Regex.Unescape(response);
125
117
result.StatusCode = code;
126
118
if (code == HttpStatusCode.OK)
127
119
{
128
var requestResult = instance.AnalyzeResponse(response);
120
instance.Response = response;
121
instance.UnescapedResponse = response;
122
var requestResult = instance.AnalyzeResponse();
129
123
MessageReceived?.Invoke(this, new ServerInteractiveEventArgsImpl("Success", code));
130
124
result.Message = "Success";
131
125
result.Result = requestResult;
@@ -113,7 +113,6 @@ public abstract class XFEClientRequesterBuilder : XFEBuilderBase<XFEClientReques
113
113
_xFEClientRequester.RequestAddress = options.RequestAddress;
114
114
_xFEClientRequester.Session = options.Session;
115
115
_xFEClientRequester.DeviceInfo = options.DeviceInfo;
116
_xFEClientRequester.AutoUnescapeResponse = options.AutoUnescapeResponse;
117
116
_xFEClientRequester.RequestServiceDictionary = _requestServiceDictionary;
118
117
_xFEClientRequester.StandardRequestServiceDictionary = _standardRequestServiceDictionary;
119
118
_xFEClientRequester.StandardMultiRequestServiceListDictionary = _standardMultiRequestServiceListDictionary;
@@ -5,7 +5,7 @@
5
5
<ImplicitUsings>enable</ImplicitUsings>
6
6
<Nullable>enable</Nullable>
7
7
<GenerateDocumentationFile>True</GenerateDocumentationFile>
8
<Version>2.3.1</Version>
8
<Version>2.4.0</Version>
9
9
<Title>XFEExtension.NetCore.ServerInteractive</Title>
10
10
<RepositoryUrl>https://github.com/XFEstudio/XFEExtension.NetCore.ServerInteractive</RepositoryUrl>
11
11
<AnalysisLevel>latest</AnalysisLevel>
@@ -21,11 +21,11 @@
21
21
<PackageReleaseNotes>
22
22
## 调整
23
23
24
用户登录会话清理逻辑优化及依赖升级
24
重构响应处理,移除自动反转义,接口调整
25
25
26
- 增加对 XFEExtension.NetCore.StringExtension 的引用,支持字符串扩展方法。
27
- 优化 UserLoginAutoCleanService,清理 Uid 为空或全空白的无效会话。
28
- 项目版本升级至 2.3.1,并将 XFEExtension.NetCore 依赖提升至 4.2.*。
26
重构 IStandardRequestService 及其实现,新增 Response/UnescapedResponse 属性,AnalyzeResponse 方法不再传递参数,统一通过属性获取响应内容。
27
XFEClientRequester 移除 AutoUnescapeResponse 相关逻辑及配置项,响应处理更清晰。
28
版本号升级至 2.4.0。
29
29
30
30
## 新增
31
31