C#でJSONデータをPOSTする方法は?
C#では、HttpClientクラスを使用してHTTPリクエストを送信し、JSONデータを送信することができます。以下に示すのはサンプルコードです。
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
namespace HttpClientExample
{
class Program
{
static async Task Main(string[] args)
{
// 创建一个HttpClient实例
using (HttpClient client = new HttpClient())
{
// 设置请求的内容类型为application/json
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
// 构造要发送的JSON数据
var json = "{\"name\":\"John\", \"age\":30}";
// 构造HTTP请求内容
var content = new StringContent(json, Encoding.UTF8, "application/json");
// 发送POST请求
var response = await client.PostAsync("http://example.com/api/endpoint", content);
// 获取响应内容
var responseString = await response.Content.ReadAsStringAsync();
// 输出响应内容
Console.WriteLine(responseString);
}
}
}
}
上のコードは、HttpClientクラスを使用してPOSTリクエストを送信し、リクエストの内容がJSON文字列である。まず、HttpClient.DefaultRequestHeadersプロパティを使用して、リクエストのコンテンツタイプをapplication/jsonに設定します。次に、送信するJSONデータを包むStringContentオブジェクトを構築し、コンテンツタイプをapplication/jsonに指定します。そして、HttpClient.PostAsyncメソッドを使用してPOSTリクエストを送信し、リクエストURLとリクエスト内容を渡します。最後に、HttpResponseMessage.Contentプロパティを使用してレスポンスの内容を取得し、ReadAsStringAsyncメソッドを使用して文字列として読み取ることができます。