.net で WebAPI を作成しました (初めて)。この API を使用して db からオブジェクトを取得したり、db をクエリしたりするのは簡単です。新しいものは何もありません
しかし、この webapi を使用してオブジェクトを保存する方法を知りたいですか?
webapi と通信するクリネット アプリケーション (タブレット、電話、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);
}
「テスト」変数がヌルです。私は何を間違っていますか?
// 更新 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 のパラメーターで null を取得します。間違いはどこですか?