mirror of
https://gitee.com/durcframework/SOP.git
synced 2025-08-11 12:56:28 +08:00
5.0
This commit is contained in:
@@ -177,7 +177,7 @@ namespace SDKCSharp.Client
|
||||
/// <typeparam name="T">返回的Response类</typeparam>
|
||||
/// <param name="request">请求对象</param>
|
||||
/// <returns>返回Response类</returns>
|
||||
public virtual T Execute<T>(BaseRequest<T> request) where T : BaseResponse
|
||||
public virtual Result<T> Execute<T>(BaseRequest<T> request)
|
||||
{
|
||||
return this.Execute<T>(request, null);
|
||||
}
|
||||
@@ -189,7 +189,7 @@ namespace SDKCSharp.Client
|
||||
/// <param name="request">请求对象</param>
|
||||
/// <param name="accessToken">accessToken</param>
|
||||
/// <returns>返回Response类</returns>
|
||||
public virtual T Execute<T>(BaseRequest<T> request, string accessToken) where T : BaseResponse
|
||||
public virtual Result<T> Execute<T>(BaseRequest<T> request, string accessToken)
|
||||
{
|
||||
RequestForm requestForm = request.CreateRequestForm(this.openConfig);
|
||||
Dictionary<string, string> form = requestForm.Form;
|
||||
@@ -225,18 +225,12 @@ namespace SDKCSharp.Client
|
||||
/// <param name="resp">服务器响应内容</param>
|
||||
/// <param name="request">请求Request</param>
|
||||
/// <returns>返回Response</returns>
|
||||
protected virtual T ParseResponse<T>(string resp, BaseRequest<T> request) where T: BaseResponse
|
||||
protected virtual Result<T> ParseResponse<T>(string resp, BaseRequest<T> request)
|
||||
{
|
||||
string method = request.Method;
|
||||
string rootNodeName = this.dataNameBuilder.Build(method);
|
||||
string errorRootNode = openConfig.ErrorResponseName;
|
||||
Dictionary<string, object> responseData = JsonUtil.ParseToDictionary(resp);
|
||||
bool errorResponse = responseData.ContainsKey(errorRootNode);
|
||||
if (errorResponse)
|
||||
{
|
||||
rootNodeName = errorRootNode;
|
||||
}
|
||||
object data = responseData[rootNodeName];
|
||||
object data = responseData.GetValueOrDefault(rootNodeName, null);
|
||||
responseData.TryGetValue(openConfig.SignName, out object sign);
|
||||
if (sign != null && !string.IsNullOrEmpty(publicKeyPlatform))
|
||||
{
|
||||
@@ -247,10 +241,8 @@ namespace SDKCSharp.Client
|
||||
data = JsonUtil.ToJSONString(checkSignErrorResponse);
|
||||
}
|
||||
}
|
||||
string jsonData = data == null ? "{}" : data.ToString();
|
||||
T t = JsonUtil.ParseObject<T>(jsonData);
|
||||
t.Body = jsonData;
|
||||
return t;
|
||||
Result<T> result = JsonUtil.ParseObject<Result<T>>(resp);
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@@ -7,7 +7,7 @@ namespace SDKCSharp.Common
|
||||
public class CustomDataNameBuilder: DataNameBuilder
|
||||
{
|
||||
|
||||
private string dataName = "result";
|
||||
private string dataName = "data";
|
||||
|
||||
public CustomDataNameBuilder()
|
||||
{
|
||||
|
@@ -11,7 +11,7 @@ namespace SDKCSharp.Common
|
||||
{
|
||||
public class OpenConfig
|
||||
{
|
||||
public static DataNameBuilder DATA_NAME_BUILDER = new DefaultDataNameBuilder();
|
||||
public static DataNameBuilder DATA_NAME_BUILDER = new CustomDataNameBuilder();
|
||||
|
||||
/// <summary>
|
||||
/// 返回码成功值
|
||||
|
@@ -33,9 +33,7 @@ namespace SDKTest
|
||||
{
|
||||
TestGet();
|
||||
Console.WriteLine("--------------------");
|
||||
TestCommon();
|
||||
Console.WriteLine("--------------------");
|
||||
TestUpload();
|
||||
//TestUpload();
|
||||
}
|
||||
|
||||
// 标准用法
|
||||
@@ -49,54 +47,20 @@ namespace SDKTest
|
||||
request.BizModel = model;
|
||||
|
||||
// 发送请求
|
||||
GetStoryResponse response = client.Execute(request);
|
||||
Result<GetStoryResponse> result = client.Execute(request);
|
||||
|
||||
if (response.IsSuccess())
|
||||
if (result.IsSuccess())
|
||||
{
|
||||
// 返回结果
|
||||
Console.WriteLine("成功!response:{0}\n响应原始内容:{1}", JsonUtil.ToJSONString(response), response.Body);
|
||||
Console.WriteLine("成功!response:{0}\n响应原始内容:{1}", JsonUtil.ToJSONString(result), result.Data);
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("错误, code:{0}, msg:{1}, subCode:{2}, subMsg:{3}",
|
||||
response.Code, response.Msg, response.SubCode, response.SubMsg);
|
||||
result.Code, result.Msg, result.SubCode, result.SubMsg);
|
||||
}
|
||||
}
|
||||
|
||||
// 懒人版,如果不想添加Request,Response,Model。可以用这种方式,返回Dictionary<string, object>,后续自己处理
|
||||
private static void TestCommon()
|
||||
{
|
||||
// 创建请求对象
|
||||
CommonRequest request = new CommonRequest("alipay.story.find");
|
||||
// 请求参数
|
||||
Dictionary<string, string> bizModel = new Dictionary<string, string>
|
||||
{
|
||||
["name"] = "白雪公主"
|
||||
};
|
||||
|
||||
request.BizModel = bizModel;
|
||||
|
||||
// 发送请求
|
||||
CommonResponse response = client.Execute(request);
|
||||
|
||||
if (response.IsSuccess())
|
||||
{
|
||||
// 返回结果
|
||||
string body = response.Body;
|
||||
Dictionary<string, object> dict = JsonUtil.ParseToDictionary(body);
|
||||
|
||||
Console.WriteLine("Dictionary内容:");
|
||||
foreach (var item in dict)
|
||||
{
|
||||
Console.WriteLine("{0}:{1}", item.Key, item.Value);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("错误, code:{0}, msg:{1}, subCode:{2}, subMsg:{3}",
|
||||
response.Code, response.Msg, response.SubCode, response.SubMsg);
|
||||
}
|
||||
}
|
||||
|
||||
private static void TestUpload()
|
||||
{
|
||||
@@ -119,10 +83,10 @@ namespace SDKTest
|
||||
request.AddFile(new UploadFile("file1", root + "/file1.txt"));
|
||||
request.AddFile(new UploadFile("file2", root + "/file2.txt"));
|
||||
|
||||
DemoFileUploadResponse response = client.Execute(request);
|
||||
if (response.IsSuccess())
|
||||
Result<DemoFileUploadResponse> result = client.Execute(request);
|
||||
if (result.IsSuccess())
|
||||
{
|
||||
List<DemoFileUploadResponse.FileMeta> responseFiles = response.Files;
|
||||
List<DemoFileUploadResponse.FileMeta> responseFiles = result.Data.Files;
|
||||
Console.WriteLine("您上传的文件信息:");
|
||||
responseFiles.ForEach(file =>
|
||||
{
|
||||
@@ -133,7 +97,7 @@ namespace SDKTest
|
||||
else
|
||||
{
|
||||
Console.WriteLine("错误, code:{0}, msg:{1}, subCode:{2}, subMsg:{3}",
|
||||
response.Code, response.Msg, response.SubCode, response.SubMsg);
|
||||
result.Code, result.Msg, result.SubCode, result.SubMsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -3,7 +3,7 @@ using Newtonsoft.Json;
|
||||
|
||||
namespace SDKCSharp.Response
|
||||
{
|
||||
public class GetStoryResponse: BaseResponse
|
||||
public class GetStoryResponse
|
||||
{
|
||||
[JsonProperty("id")]
|
||||
public int Id { get; set; }
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
<TargetFramework>netcoreapp6.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
Reference in New Issue
Block a user