일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹개발
- ObjectNode
- ESP-DL
- Spring 웹개발
- 50만호공급
- 구체화하기
- C#
- SpringBoot
- 아두이노 개발
- 공릉아파트부지
- 청년원가주택
- spring
- java programming
- Ai
- WPF
- 아두이노
- 리츠주택
- V2X
- C-V2X
- ESP32
- onnxruntime
- DataBinding
- ListView
- 아두이노라이브러리
- 삼성의료원부지
- 대방동군부지
- C-ITS
- wave
- http
- Spring 웹
- Today
- Total
John's 개발자의 관심노트
C# HTTP Get Method 사용방법 본문
HTTP 프로토콜을 기반으로 특정 서버의 데이터를 가져오는 코드에 대해 알아보겠습니다.
오늘 사용할 웹 서버 주소로는 "https://cdn.pixabay.com/photo/2023/06/25/08/46/woman-8086721_640.jpg" 를 사용할 예정이고, 해당 URL 은 구글 검색으로 찾아온 이미지 URL 주소 입니다.
해당 URL 에 접속하시면, 어떤 한 여성분의 사진이 불려집니다. 이제 마우스로 클릭해서가 아닌 C# Code 에서 불러오는 방법에 대해 알아보겠습니다.
Image Data 를 담는 공간으로는 Mat Type 변수를 사용하여, 아래 코드를 사용하시고자 한다면, Nuget Package 에서 "OpenCvSharp4" 패키지를 설치하고 실행해 주세요.
아래 코드는 HttpWebRequest 객체를 생성하고, 위에서 오늘 사용할 웹 서버 주소 URL 을 입력해서 Connection 을 진행합니다. KeepAlive 기능은 False 로 해주셔야, 반복적으로 Resource 를 가져올 수 있는 것으로 보여집니다. True 상태로 계속 "GET" Method 를 호출하니 Exception 이 발생하더군요. 조금 더 자세하게 공부를 해서 업데이트 해두도록 하겠습니다.
string url = "https://cdn.pixabay.com/photo/2023/06/25/08/46/woman-8086721_640.jpg";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.KeepAlive = false;
request.Method = "GET";
request.Timeout = 1 * 1000;
Response 를 객체에 담고, 해당 객체를 통해 Body 부분에 실려온 Data 를 Buffer 에 담습니다. 디버그 모드로 확인해보시면 "FFD8 ~ FFD9" 의 데이터가 실려 있을거에요. 해당 데이터를 모두 담고, Mat.FromImageData() 를 사용해 Raw Type 의 Image 데이터를 담아냅니다.
List<byte> data = new List<byte>();
using (HttpWebResponse resp = (HttpWebResponse)request.GetResponse())
{
HttpStatusCode status = resp.StatusCode;
Console.WriteLine(status);
using (Stream stream = resp.GetResponseStream())
{
int count = 0;
var buff = new byte[1024];
do
{
count = stream.Read(buff, 0, buff.Length);
for (int i = 0; i < count; i++)
{
data.Add(buff[i]);
}
} while (count > 0);
result = Mat.FromImageData(data.ToArray(), ImreadModes.Color);
}
}
'코드모음 > C#' 카테고리의 다른 글
C# wpf, RichTextBox 사용방법! + 글자별 색상을 다르게 하는 방법! (0) | 2023.08.09 |
---|---|
C# wpf DataBinding, Element Data Binding 하는 방법 (0) | 2023.08.09 |
C# Wpf ListView 행별 색상 표현방법, Style.Triggers 사용법 (0) | 2023.08.09 |
C# wpf DataBinding, ListView DataBinding Code 정리 (0) | 2023.08.09 |
C# RTMPose Model 사용방법 정리, AI Model 실행 방법! (0) | 2023.08.08 |