comment faire pour enregistrer un objet à l'aide .net webapi

J'ai créer WebAPI .net (mon premier). L'utilisation de cette api pour obtenir un objet de db, requête db etc est facile pour moi. Rien de nouveau

Mais je me demandais comment faire pour enregistrer un objet à l'aide de cette webapi ?

J'ai un clinet application (tablette, téléphone, PC) qui communique avec mon webapi. À partir de mon application, il ya une possibilité d'enregistrer un utilisateur de nouvelles. Maintenant, j'ai besoin de l'enregistrer dans la bd. J'utilise Azure SQL. Maintenant, comment puis-je passer cet objet à l'API afin que je puisse l'enregistrer ?

Pour mon application j'utilise C#/XAML
Pour ma WebAPI que j'utilise .NET

Je suis tring avec ce code:

HttpClient httpClient = new HttpClient();
        String u = this.apiUrl + "sd/Localization/insert";
        Uri uri = new Uri(u);
        HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, uri);

Mais je ne sais pas comment envoyer de l'objet ? Dois-je le sérialiser ? Si oui comment faire pour l'envoyer par la poste.

//Mise à JOUR

J'ai construit ce

        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);

Mais dans mon API de la variable est null

C'est le code de mon api

    //POST sd/Localization/insert
    public void Post(string test)
    {
        Console.WriteLine(test);
    }

Le "test" de la variable est null.
Ce que je fais mal ?

//Mise à JOUR 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);
        }

La configuration de routage

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 }
        );
    }
}

après toutes vos réponses, j'ai créé ce mais encore obtenir la valeur null en paramètre dans mon api. Où est l'erreur ?

OriginalL'auteur Fixus | 2012-07-27