Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- c# for
- MariaDB
- postgresql
- Telerik
- restapi
- 정보처리기사 실기
- UI
- show
- VisualStudio2019
- multipart/form-data
- IndexOutOfRangeException
- url 파싱
- c# 클로저
- 정처기
- 프로토타입
- System.IndexOutOfRangeException
- C# sprintf
- Git
- 정보처리기사
- WinForms
- MFC
- HeidiSQL
- 정처기 실기
- drop
- POST
- create
- C#
- git commit vi
- wss 파싱
- url파싱
Archives
- Today
- Total
달짱달짱
[RestAPI/C#] Multipart/form-data POST 방식 수신 본문
HTTPListener를 통해 POST 로 전송되는 Multiform-data Body 수신 및 Body 가져오기
* Method : POST
* Content Type : Multipart/form-data
1. 참조 추가
using System.Net;
using System.Net.Http;
2. HttpListener 선언
HttpListener httpListener;
3. HttpListener 객체 생성
if (httpListener == null)
{
httpListener = new HttpListener();
httpListener.Prefixes.Add(string.Format("http://127.0.0.1:31400/"));
serverStart(); //서버 시작 함수 호출
}
4. serverStart() 함수 : 수신된 context 가져오기
private void serverStart()
{
if (!httpListener.IsListening)
{
httpListener.Start(); //Server is start!
Task.Factory.StartNew(() =>
{
while (httpListener != null)
{
HttpListenerContext context = this.httpListener.GetContext();
Stream stream = GetBody(context);
context.Response.Close();
}
});
}
}
5. GetBody() 함수 : Request Body 전부 가져오기
private Stream GetBody(HttpListenerContext context)
{
if (!context.Request.HasEntityBody)
{
return null;
}
System.IO.Stream body = context.Request.InputStream; // Stream형식으로 받아오기
//원하는 자료형에 따라 변환하여 사용가능
return body;
}
6. 아래와 같은 형식의 데이터 확인 가능 (예시)
--12345
Content-Disposition: form-data; name="sometext"
some text that you wrote in your html form ...
--12345
Content-Disposition: form-data; name="name_of_post_request" filename="filename.xyz"
content of filename.xyz that you upload in your form with input[type=file]
--12345
Content-Disposition: form-data; name="image" filename="picture_of_sunset.jpg"
content of picture_of_sunset.jpg ...
--12345--
- --12345 : 구분자
** 참고 **
위의 방법으로 가져온 Body 항목 파싱하는 방법
2022.05.04 - [RestAPI] - [RestAPI/C#] Multipart/form-data POST 방식 수신 데이터 파싱
'RestAPI' 카테고리의 다른 글
[RestAPI/C#] Multipart/form-data POST 방식 수신 데이터 파싱 (0) | 2022.05.04 |
---|