반응형
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 |
댓글