1.概要
.netアプリケーションからJsonデータをPOSTしてみます。
今回は.net Framework4.5から追加された【HttpClient】クラスを使います。
webサーバーはPOSTされたJsonデータを
そのまま返してくるという動作になっています。
2.Jsonデータ
Jsonデータを扱うために【Newtonsoft.Json】を
NuGetからインストールしています。
【Newtonsoft.Json】については過去記事を参照して下さい。
3.コード
【http://192.168.0.129:3000】に対してJsonデータをPOSTしています。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Newtonsoft.Json; namespace postTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private async void Form1_Load(object sender, EventArgs e) { // シリアライズ処理 var info = new test { Job = "プログラマー", Age = 37, }; string json = JsonConvert.SerializeObject(info, Formatting.Indented); var client = new HttpClient(); // タイムアウト時間の設定(5秒) client.Timeout = TimeSpan.FromMilliseconds(5000); var content = new StringContent(json, Encoding.UTF8, "application/json"); try { var response = await client.PostAsync("http://192.168.0.129:3000", content); var resString = await response.Content.ReadAsStringAsync(); MessageBox.Show(resString); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } // シリアライズの対象となるクラスを宣言 public class test { public string Job { get; set; } public int Age { get; set; } } }
4.結果
結果は下図のとおりです。
POSTしたデータがそのまま戻ってきています。