gpt4 book ai didi

c# - 使用动态对象调用 Web Api 2 和 HttpClient

转载 作者:行者123 更新时间:2023-12-04 17:44:36 27 4
gpt4 key购买 nike

我目前正在开发 .NET Framework 4.7.2 应用程序。我需要从我的 C# 代码中调用 Web API Controller 。

我正在更新动态对象,我无法创建任何 View 模型。动态对象具有以下结构,并将动态填充不同的键:

List<KeyValuePair<int,Dictionary<string, object>>>

调用代码如下所示:

var task = Task.Run(async () => await UpdateMyInformation(myDynamicObject));
var test = task.Result;

方法实现:

private async Task<dynamic> UpdateMyInformation(dynamic data)
{
var content = new StringContent(JsonConvert.SerializeObject(data).ToString(),
Encoding.UTF8, "application/json");
var baseUrl = "http://localhost:1234/api/MyInformationController";

using (HttpClient client = new HttpClient())
{
var response = await client.PutAsync(baseUrl, content);
response.EnsureSuccessStatusCode();
var result = response.Content.ReadAsStringAsync().Result;
return result;
}

}

API Controller 看起来像这样:

public class MyInformationController : ApiController
{
[HttpPut]
public async Task<dynamic> Put(dynamic myData)
{
// I need to parse data and return the new dynamic object
// Manipulate myData according to a given logic

return myData;
}
}

我可以在我的 Controller 操作中接收数据,我的问题是:我应该使用动态将 JSON 对象获取到我的 Controller 中吗?

什么可能是解决此问题的更好方法?

最佳答案

我会使用 JObject 而不是动态的。

public class MyInformationController : ApiController
{
[HttpPut]
public async Task<dynamic> Put(JObject myData)
{
// I need to parse data and return the new dynamic object
// Manipulate myData according to a given logic

return myData;
}
}

通过使用JObject,您可以根据键访问对象中的属性。请参阅docs了解更多信息

关于c# - 使用动态对象调用 Web Api 2 和 HttpClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52718961/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com