c# – 如何使用.net webapi保存对象
发布时间:2020-12-16 00:20:55 所属栏目:百科 来源:网络整理
导读:我在.net(我的第一个)中创建了WebAPI.使用这个api从db获取对象,查询db等对我来说很容易.没什么新鲜的 但我想知道如何使用这个webapi保存对象? 我有一个与我的webapi通信的clinet应用程序(平板电脑,手机,PC).从我的应用程序中可以保存用户新闻.现在我需要将
我在.net(我的第一个)中创建了WebAPI.使用这个api从db获取对象,查询db等对我来说很容易.没什么新鲜的
但我想知道如何使用这个webapi保存对象? 我有一个与我的webapi通信的clinet应用程序(平板电脑,手机,PC).从我的应用程序中可以保存用户新闻.现在我需要将其保存在db中.我使用Azure SQL.现在我如何将此对象传递给API,以便我可以保存它? 对于我的应用程序,我使用C#/ XAML 我正在使用这段代码: 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(也来自具有相同名称的程序集). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |