IT정보사전

[.Net] WebRequest클래스로 Data보내기 본문

웹 프로그래밍

[.Net] WebRequest클래스로 Data보내기

작은나무0530 2018. 12. 6. 16:29
728x90
반응형

안녕하세요~ 작은나무입니다!!
요즘 REST API형식으로 많이 호출하여 데이터를 주고 받는 것 같습니다.
WebRequest를 이용하여 쉽게 데이터를 보내고 받는 부분에 대하여 정리해 보겠습니다.

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

public static string SendRequest(string jsonValue)

{
    HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("https://localhost");
    string json = string.Empty;

    try
    {
        myRequest.Method = "POST";
        myRequest.ContentType = "application/json;"
        myRequest.Timeout = 10000;

        using (Stream requestStream = myRequest.GetRequestStream())
        {
            byte[] postBuffer = UTF8Encoding.UTF8.GetBytes(jsonValue);
            requestStream.Write(postbuffer, 0, postBuffer.Length);
        }

        using (HttpWebResponse response = (HttpWebResponse)myRequest.GetResponse())
        {
            using (Stream responseStream = response.GetResponseStream())
            {
                using (StreamReader responseReader = new StreamReader(responseStream))
                {
                    json = responseReader.ReadToEnd();
                }
            }
        }
    }
    catch (Exception e) {}

    return json;
}

위의 Class를 이용하여 https://localhost를 호출하여 Data를 전달하고, Response값을 받아올 수 있습니다.
1. HttpWebRequest.Create를 호출하여 WebRequest 인스턴스를 만듭니다.
2. 요청을 통해 Data를 보내도록 프로토콜 메서드를 지정합니다. (Method = "POST")
3. ContentLength 속성을 설정
4. ContentType 속성을 설정
5. GetRequestStream 메서드를 호출하여 요청 Data를 포함하는 Stream을 가져오기
6. 반환된 Stream 개체에 Data를 기록 (requestStream.Write(postbuffer, 0, postBuffer.Length)
7. GetResponse를 호출하여 요청을 서버에 보내기

728x90
반응형
그리드형
Comments