お世話になっております。
C#のHttpClientクラスを使ってPOSTする場合、WebAPI側(ASP.NET WebAPI .NetFramework4.7.2)で受けるPOSTメソッドの引数の書き方によってはメソッドにアクセスできない(404エラー)になります。
HttpClientを使ったクライアント側サンプル(.Net Core コンソールアプリケーションにて)
C#
1var client = new HttpClient(); 2var content = new StringContent(json, Encoding.UTF8, "application/json"); 3var response = await client.PostAsync("http://localhost/api/person", content);
アクセス可能なPOSTメソッド(クラスで受け取る)
C#
1public HttpResponseMessage PostPerson(Person person) 2{}
アクセス不可能なPOSTメソッド(プリミティブな型で受け取る)
C#
1public HttpResponseMessage PostPerson(string id, string name) 2{}
補足
POSTMANを使った場合は上記どちらのケースでもアクセス可能で、むしろ下記のようにサーバー側を記述してもアクセス可能です
C#
1public HttpResponseMessage PostPerson(Person person, string id, string name) 2{ 3 // personにもid, nameにも値が入る 4}
HttpClientを使ったjsonデータのPOSTで、プリミティブな型で受ける方法はありますでしょうか?
追記
WebAPI及びクライアント側のフレームワーク情報を追記しました。
HttpClientの使用方法はusingを使わないように修正しました。
回答1件
あなたの回答
tips
プレビュー