使用 .NET Framework 4.5 将 JSON 传递给 ASP.NET MVC 4 中的 WebApi
Passing JSON to WebApi in ASP.NET MVC 4 using .NET Framework 4.5
我正在尝试传递来自 Restful API 的模型。我的代码是:
public class RestApiInvocations<T>
{
public HttpResponseMessage Post(string url, T model)
{
HttpResponseMessage result = null;
HttpClient client = new HttpClient();
try
{
result = client.PostAsJsonAsync(url, model).Result;
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex);
}
return result;
}
}
在我的 API 控制器中,我在传入参数上添加了 FromUri
和 FromBody
属性。
但是我的 HttpClient
object 不允许我添加 Content-Type header。我可以添加一个接受 header,所以我尝试添加一个接受 header 和 application/json,但没有结果。有什么建议么?
谢谢你的帮助!
private const string _Uri = "/ROUTE_TO_ACTION";
public ReturnModel AddInvoice(SomeModel model)
{
var uri = string.Format(_Uri);
var response = ServiceClient().PostAsJsonAsync(uri, model).Result;
var result = response.Content.ReadAsAsync<ReturnModel>().Result;
return result;
}
private HttpClient ServiceClient()
{
var client= new HttpClient();
client.BaseAddress = new Uri("YOUR_BASE_URL_TO_API"); //"http://localhost:8080/"
client.Timeout = TimeSpan.FromMinutes(3);
}
设置你的 Urls/Endpoints 和 运行 它。
并在编写代码之前在 POSTMAN 上测试 Api 端点。
我正在尝试传递来自 Restful API 的模型。我的代码是:
public class RestApiInvocations<T>
{
public HttpResponseMessage Post(string url, T model)
{
HttpResponseMessage result = null;
HttpClient client = new HttpClient();
try
{
result = client.PostAsJsonAsync(url, model).Result;
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex);
}
return result;
}
}
在我的 API 控制器中,我在传入参数上添加了 FromUri
和 FromBody
属性。
但是我的 HttpClient
object 不允许我添加 Content-Type header。我可以添加一个接受 header,所以我尝试添加一个接受 header 和 application/json,但没有结果。有什么建议么?
谢谢你的帮助!
private const string _Uri = "/ROUTE_TO_ACTION";
public ReturnModel AddInvoice(SomeModel model)
{
var uri = string.Format(_Uri);
var response = ServiceClient().PostAsJsonAsync(uri, model).Result;
var result = response.Content.ReadAsAsync<ReturnModel>().Result;
return result;
}
private HttpClient ServiceClient()
{
var client= new HttpClient();
client.BaseAddress = new Uri("YOUR_BASE_URL_TO_API"); //"http://localhost:8080/"
client.Timeout = TimeSpan.FromMinutes(3);
}
设置你的 Urls/Endpoints 和 运行 它。 并在编写代码之前在 POSTMAN 上测试 Api 端点。