【问题标题】:How to post form data with ASP.NET MVC 6 from backend to another url?如何使用 ASP.NET MVC 6 将表单数据从后端发布到另一个 url?
【发布时间】:2016-05-17 02:23:26
【问题描述】:
我的应用程序后端中有一些数据需要从我的应用程序发布到另一个应用程序。
我正在考虑创建表单,用数据填充它并在 onLoad 中使用 javascript 自动发布。但这对我来说似乎有点过时了。使用 ASP.NET 5 和 MVC6 功能从后端发布到其他应用程序 url 的正确方法是什么?
注意:最好是 JSON 和 RESTful 设计(控制器将接受另一端的数据),尽管我认为这不会改变任何东西。
【问题讨论】:
标签:
asp.net
.net
json
asp.net-mvc
rest
【解决方案1】:
您应该能够使用例如普通的HttpClient。这是来自 MS 博客的 example。
using System.Net.Http;
using (var client = new HttpClient())
{
var baseUri = "http://playapi.azurewebsites.net/api/products";
client.BaseAddress = new Uri(baseUri);
client.DefaultRequestHeaders.Accept.Clear();
var response = await client.GetAsync(baseUri);
if (response.IsSuccessStatusCode)
{
var responseJson = await response.Content.ReadAsStringAsync();
//do something with the response here. Typically use JSON.net to deserialise it and work with it
}
}
这是一个 GET 示例,但 POST 应该非常相似。如果您控制两台服务器,那么您可以使用一个叫做 Swagger 的花哨的东西(和用于 .NET 的 Swashbuckle nuget 包)。它是 REST API 的一种 WSDL,它可以生成完整的代理来访问您的 API,类似于 WCF 所做的 + 一个带有文档和测试表单的漂亮页面。
附:不确定 ASP.NET Core 的 Swashbuckle 的状态,但 Nuget 上也有预发布版本。