C# で HTTP POSTWeb リクエストを作成する

  1. C# の WebClient クラスを使用して HTTP POSTWeb リクエストを作成する
  2. C# の HttpWebRequest クラスを使用して HTTP POSTWeb リクエストを作成する
  3. C# の HttpClient クラスを使用して HTTP POSTWeb リクエストを作成する

このチュートリアルでは、C# で HTTP POSTWeb リクエストを作成する方法について説明します。

C# の WebClient クラスを使用して HTTP POSTWeb リクエストを作成する

WebClient クラスは、C# で URL データを送受信するための多くのメソッドを提供します。C# の WebClient クラスの WebClient.UploadValues(url, values) 関数を使用して HTTP POST リクエストを行うことができます。次のコード例は、C# の WebClient クラスを使用して単純な HTTP POSTWeb リクエストを作成する方法を示しています。

using System.Net;
using System.Collections.Specialized;

var wb = new WebClient()
var data = new NameValueCollection();
string url = "www.example.com"
data["username"] = "myUser";
data["password"] = "myPassword";

var response = wb.UploadValues(url, "POST", data);

上記のコードでは、url にデータを送信するための Web クライアント wb を作成します。url に送信する data 変数を初期化します。wb.UploadValues(url, "POST", data) 関数のパラメーター内で POST を指定することにより、url に対して HTTP POSTWeb リクエストを作成します。url からの応答は、reponse 変数内に保存されます。

C# の HttpWebRequest クラスを使用して HTTP POSTWeb リクエストを作成する

HttpWebRequest クラスは、C# で HTTP プロトコルを使用してサーバーと直接対話するメソッドを提供します。HttpWebRequest.Method = "POST"プロパティを使用して HTTP Web リクエストが C# の POST リクエストであることを指定します。次のコード例は、C# の HttpWebRequest クラスを使用して単純な HTTP POSTWeb リクエストを作成する方法を示しています。

using System.Net;
using System.Text; 
using System.IO;

string url = "http://www.example.com"
var request = (HttpWebRequest)WebRequest.Create(url);

var postData = "username=" + Uri.EscapeDataString("myUser");
    postData += "&password=" + Uri.EscapeDataString("myPassword");
var data = Encoding.ASCII.GetBytes(postData);

request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;

using (var stream = request.GetRequestStream())
{
    stream.Write(data, 0, data.Length);
}

var response = (HttpWebResponse)request.GetResponse();

上記のコードでは、HTTPWeb リクエスト requesturl に作成しました。requestrequest.Method = "POST"プロパティを持つ POST リクエストであることを指定しました。url に送信するデータ postDataUri.EscapeDataString() 関数で初期化し、データをバイト変数 data にエンコードしました。request.ContentLength = data.Length プロパティを使用して、url に送信するデータの長さを指定します。最後に、ストリームを作成し、stream.Write() 関数を使用してデータを書き込みました。url からのレスポンスを request.GetResponse() 関数で取得し、HTTPWebResponse クラスのオブジェクト response に格納しました。

C# の HttpClient クラスを使用して HTTP POSTWeb リクエストを作成する

HttpClient クラスは、HTTP 要求を送信および HTTP 応答を受信するためのメソッドを提供します C# で。HttpClient.PostAsync(url, data) 関数ここで、url は URL であり、dataurl に送信するデータです。次のコード例は、C# の HttpClient クラスを使用して単純な HTTPPOST リクエストを作成する方法を示しています。

using System.Net.Http;

readonly HttpClient client = new HttpClient();
var values = new Dictionary<string, string>
{
    { "username", "myUser" },
    { "password", "myPassword" }
};

string url = "http://www.example.com"
var data = new FormUrlEncodedContent(values);
var response = await client.PostAsync(url, data);

上記のコードでは、読み取り専用の HTTP クライアント client を作成し、url を初期化しました。url に送信したいデータを辞書 values に保存しました。そして、C# の FormUrlEncodedContent() 関数を使って、valuesapplication/x-www-form-urlencoded タイプに変換しました。最後に、client.PostAsync(url, data) 関数を使用して HTTP POST Web リクエストを作成し、url からの応答を response 変数内に保存しました。