编程语言
首页 > 编程语言> > c# – 如何使用.net webapi保存对象

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