본문 바로가기
C#

[C#] HttpPost 2가지 방법

by EdwardYang 2022. 8. 26.
반응형

1.

public string HttpPost(string url, string content_data, string content_type = "application/json", string[][] headers = null)
{
    string result = string.Empty;
    try
    {
        System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
        request.Method = "POST";
        request.ContentType = content_type;

        if (headers != null)
        {
            for (int i = 0; i < headers.Length; i++)
            {
                request.Headers.Add(headers[i][0], headers[i][1]);
            }
        }

        byte[] bytes = System.Text.Encoding.ASCII.GetBytes(content_data);
        request.ContentLength = bytes.Length;

        using (System.IO.Stream reqStream = request.GetRequestStream())
        {
            reqStream.Write(bytes, 0, bytes.Length);
        }

        using (System.Net.WebResponse resp = request.GetResponse())
        {
            System.IO.Stream respStream = resp.GetResponseStream();
            using (System.IO.StreamReader sr = new System.IO.StreamReader(respStream))
            {
                result = sr.ReadToEnd();
            }
        }
    }
    catch
    {
        result = "";
    }
    return result;
}

2.

public System.Threading.Tasks.Task<string> HttpPost(string url, string content_data = null, string content_type = "application/json", string[][] headers = null)
{
    try
    {
        System.Net.Http.StringContent httpContent;

        if (string.IsNullOrEmpty(content_data))
        {
            httpContent = null;
        }
        else
        {
            httpContent = new System.Net.Http.StringContent(content_data, System.Text.Encoding.UTF8, content_type);

            if (headers != null)
            {
                for (int i = 0; i < headers.Length; i++)
                {
                    httpContent.Headers.Add(headers[i][0], headers[i][1]);
                }
            }
        }

        System.Net.Http.HttpClient httpClient = new System.Net.Http.HttpClient();

        System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> response = httpClient.PostAsync(url, httpContent);

        return response.Result.Content.ReadAsStringAsync();
    }
    catch
    {
        return System.Threading.Tasks.Task.FromResult(string.Empty);
    }
}
반응형

'C#' 카테고리의 다른 글

[C#] base64 encoding / decoding  (0) 2022.09.21
[C#] decimal Parse 지수 값을 허용하고 규칙에 따라 문자열 처리  (0) 2022.09.20
[C#] HttpGet 2가지 방법  (0) 2022.08.26
[C#] Decimal Min Max  (0) 2022.08.25
[C#] ByteArrayToHexString  (0) 2022.08.25

댓글