gpt4 book ai didi

c# - 将动态对象传递给应用程序中 Post 数据的通用方法

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:06 28 4
gpt4 key购买 nike

在我的应用程序中,它正在调用 webapi,并且应用程序在 MVC5 中。现在我在应用程序项目中有更多的方法。所以我想创建一个通用(全局)方法来调用 api。用于获取内容的方法工作正常,但是那些用于发布(意味着将数据保存到数据库类型)数据的方法,会出现这样的错误。代码如下:

public static string SendDataToAPI(dynamic objCommon, string urlParameters, ref string errorMessage)
{
try {
string url = ConfigurationSettingHelper._BaseUrl;
string strJson = string.Empty;
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

var response = client.PostAsJsonAsync(urlParameters, objCommon);

if (response.Result.IsSuccessStatusCode)
{
strJson = response.Result.Content.ReadAsStringAsync().Result;
}
else {
errorMessage = response.Result.Content.ReadAsStringAsync().Result;
}

return strJson;
}
}
catch (Exception ex) {
errorMessage = ex.Message;
return errorMessage;
}
}

所以,我的问题是如何在 PostAsJsonAsync 方法中传递动态对象类型?如何设置这种方法以供常用?

最佳答案

尝试下面的一些东西,其中发布数据模型通常接受任何类型,复杂对象也应该被包装到单个模型中。

public async virtual Task<string> ExecuteHttpApiCall<TModel>(TModel model, string url)
{
HttpResponseMessage response;
using (var client = new HttpClient())
{
if (model != null)
{
response = await client.PostAsJsonAsync(url, model);
}
else
{
response = await client.GetAsync(url);
}

return await response.Content.ReadAsStringAsync();
}
}

关于c# - 将动态对象传递给应用程序中 Post 数据的通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36566303/

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