C#에서 HTTP POST 웹 요청 만들기

  1. C#에서WebClient클래스를 사용하여 HTTP POST 웹 요청 만들기
  2. C#에서HttpWebRequest클래스를 사용하여 HTTP POST 웹 요청 만들기
  3. C#에서HttpClient클래스를 사용하여 HTTP POST 웹 요청 만들기

이 자습서에서는 C#에서 HTTP POST 웹 요청을 만드는 방법에 대해 설명합니다.

C#에서WebClient클래스를 사용하여 HTTP POST 웹 요청 만들기

WebClient클래스은 C#의 URL로 데이터를 보내고 받는 많은 방법을 제공합니다.WebClient.UploadValues(url, values)함수 C#의WebClient클래스. 다음 코드 예제는 C#의WebClient클래스를 사용하여 간단한 HTTP POST 웹 요청을 만드는 방법을 보여줍니다.

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로 데이터를 보내기위한 웹 클라이언트wb를 생성합니다. url로 보내려는data변수를 초기화합니다. wb.UploadValues(url, "POST", data)함수의 매개 변수 내에POST를 지정하여url에 대한 HTTP POST 웹 요청을 작성합니다. url의 응답은reponse변수에 저장됩니다.

C#에서HttpWebRequest클래스를 사용하여 HTTP POST 웹 요청 만들기

HttpWebRequest클래스은 C#의 HTTP 프로토콜을 사용하여 서버와 직접 상호 작용하는 방법을 제공합니다. HttpWebRequest.Method = "POST"속성을 사용하여 HTTP 웹 요청이 C#의 POST 요청임을 지정합니다. 다음 코드 예제는 C#의HttpWebRequest클래스를 사용하여 간단한 HTTP POST 웹 요청을 만드는 방법을 보여줍니다.

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();

위의 코드에서url에 대한 HTTP 웹 요청request를 생성했습니다. requestrequest.Method = "POST"속성이있는 POST 요청임을 지정했습니다. Uri.EscapeDataString()함수를 사용하여url로 보내려는 데이터postData를 초기화하고 데이터를 바이트 변수data로 인코딩했습니다. request.ContentLength = data.Length 속성을 사용하여url에 전송할 데이터의 길이를 지정합니다. system.web.httprequestbase.contentlength? view = netframework-4.8). 결국 우리는stream을 만들고 stream.Write()함수를 사용하여 데이터를 썼습니다. request.GetResponse()함수url에서 응답을 캡처하여HTTPWebResponse 클래스 객체response에 저장했습니다.

C#에서HttpClient클래스를 사용하여 HTTP POST 웹 요청 만들기

HttpClient클래스은 C#에서 HTTP 요청을 보내고 HTTP 응답을받는 방법을 제공합니다. HttpClient.PostAsync(url, data)function을 사용하여 HTTP POST 웹 요청을 할 수 있습니다. 여기서url은 URL이고dataurl로 보내려는 데이터입니다. 다음 코드 예제는 C#에서HttpClient클래스를 사용하여 간단한 HTTP POST 요청을 만드는 방법을 보여줍니다.

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을 초기화했습니다. values사전에url로 보내려는 데이터를 저장했습니다. 그런 다음 [FormUrlEncodedContent()함수]를 사용하여valuesapplication/x-www-form-urlencoded 유형으로 변환했습니다. 결국 우리는client.PostAsync(url, data)함수를 사용하여 HTTP POST 웹 요청을 만들고response변수 안에url의 응답을 저장했습니다.