c# – 如何使用.net webapi保存对象
作者:互联网
我在.net(我的第一个)中创建了WebAPI.使用这个api从db获取对象,查询db等对我来说很容易.没什么新鲜的
但我想知道如何使用这个webapi保存对象?
我有一个与我的webapi通信的clinet应用程序(平板电脑,手机,PC).从我的应用程序中可以保存用户新闻.现在我需要将其保存在db中.我使用Azure SQL.现在我如何将此对象传递给API,以便我可以保存它?
对于我的应用程序,我使用C#/ XAML
对于我的WebAPI,我使用.NET
我正在使用这段代码:
HttpClient httpClient = new HttpClient();
String u = this.apiUrl + "sd/Localization/insert";
Uri uri = new Uri(u);
HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, uri);
但我不知道如何发送对象?我应该序列化吗?如果是,如何通过邮寄发送.
//更新
我已经构建了这个
HttpClient httpClient = new HttpClient();
String u = this.apiUrl + "sd/Localization/insert";
Uri uri = new Uri(u);
HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, uri);
httpRequestMessage.Content = new StringContent("{'Name':'Foo', 'Surname':'Bar'}");
await httpClient.PostAsync(uri, httpRequestMessage.Content);
但在我的API中,变量为null
这是我api的代码
// POST sd/Localization/insert
public void Post(string test)
{
Console.WriteLine(test);
}
“test”变量为null.
我究竟做错了什么 ?
//更新2
using (HttpClient httpClient = new HttpClient())
{
String u = this.apiUrl + "sd/Localization/insert";
Uri uri = new Uri(u);
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, uri)
{
Method = HttpMethod.Post,
Content = new StringContent("my own test string")
};
await httpClient.PostAsync(uri, request.Content);
}
路由配置
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "sd/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
在你所有的答案之后我创造了这个,但我仍然在我的api的param上得到null.哪里出错了?
解决方法:
WebAPI非常擅长解析发送给它的数据并将其转换为.NET对象.
我不习惯使用带有WebAPI的C#客户端,但我会尝试以下方法:
var client = new HttpClient();
client.PostAsJsonAsync<YourObjectType>("uri", yourObject);
注意:您需要使用System.Net.Http(来自具有相同名称的程序集)以及System.Net.Http.Formatting(也来自具有相同名称的程序集).
标签:c,asp-net-web-api,windows-8,windows-runtime,azure-sql-database 来源: https://codeday.me/bug/20190714/1461395.html