본문 바로가기
반응형

프로그래밍473

C# HttpClient.PostAsync 사용하기 HttpClient란 무엇인가?HttpClient은 HTTP 요청을 처리하기 위해서 설계된 .NET 라이브러리 내에 존재하는 클래스이다.HttpClient의 장점비동기 실행(Asynchronous Operations) : 응답을 기다리는 동안 다른 처리가 가능하다.재사용성(Reusable) : 하나의 인스턴스로 여러 요청에 사용이 가능하다.유연성(Flexibility) : HTTP 메소드와 커스텀 가능한 헤더를 지원한다.HttpClient.PosyAsync는 특정한 URL에 대해서 POST 방식으로 비동기로 데이터 송신을 가능하게 한다.기본 예제HttpClient client = new HttpClient();HttpContent content = new StringContent(jsonData, Enc.. 2024. 10. 7.
시리얼 통신(Serial Communication)이란 무엇인가? 시리얼 통신(Serial Communication)이란?직렬(Serial) 통신은 대게 하나의 신호선을 이용하여 데이터를 주고받는 통신을 일컬어 지칭한다. 하나의 신호선을 이용하기 때문에 데이터 전송은 일정한 시간 간격으로 전송하게 된다. 즉 한 시간 간격 동안에 하나의 논리적인 데이터인 0과 1(High 혹은 Low)을 보내며, 일정한 길이의 데이터를 모두 전송하기 위해서는 다소 시간이 걸린다. 그렇지만 시리얼 통신은 적은 수의 신호선을 사용하기 때문에 저렴하게 통신을 할 수 있다. 이런 장점 때문에 최근에 대부분의 통신은 직렬통신으로 데이터를 전송한다.(시리얼 통신의 적용 예 USB, PC COM Port) 병렬(Parallel) 통신은 여러 개의 신호선을 사용한다. 신호선의 개수는 하나의 시간 간격.. 2024. 10. 7.
C# HTTP 프로토콜과 Web 사용 WebClient 사용하여 HTTP 사용하기C#에서 HTTP를 사용하기 위해서는 여러 방법이 있다. 간단하게는 System.Net.WebClient 클래스를 사용할 수 있으며, 좀 더 세밀한 제어를 위해서는 System.Net.HttpWebRequest 클래스를 사용할 수 있다. 아래는 WebClient 클래스를 사용하여 웹사이트의 HTML을 가져오는 예제이다. using System.Net;string url = "http://www.google.com";WebClient webClient = new WebClient();string html = webClient.DownloadString(url);HttpWebRequest를 사용하여 HTTP 사용하기C#에서 좀 더 세밀하게 HTTP를 제어할 필요가 .. 2024. 10. 2.
PowerShell 에러 Invoke-WebRequest : 기본 연결이 닫혔습니다. SSL/TLS 보안 채널에 대한 트러스트 관계를 설정할 수 없습니다. Invoke-WebRequest를 사용해서 Https 연결 시도영어로 찾아보니 해당 문장이었다.The underlying connection was closed - Could not\nestablish trust relationship for the SSL/TLS secure channel. 하지만 바로 위와 같은 에러가 출력되면서 WebRequest가 정상적으로 진행되지 않았다.그래서 파워 구글링을 시도하였다. 그리고 몇몇 시도와 테스트 끝에 해결 방법을 찾았다. 이는 인증서 혹은 윈도우 버전이 TLS/SSL 버전과 맞지 않아서 발생하는 이슈이다.아래의 명령어를 입력하면 이를 우회할 수 있다.[System.Net.ServicePointManager]::ServerCertificateValidationC.. 2024. 9. 27.
PowerShell의 Invoke-WebRequest로 Post Request 보내기 PowerShell 사용하기Powershell은 웹브라우저가 아니기 때문에 웹브라우저처럼 html을 보기 좋은 형태로 출력해주지 않지만 html을 text 형태로 바로 확인이 가능하다. 웹페이지가 적절하게 응답하는지, 오류는 없는지 확인하고 싶을 때 유용하게 사용이 가능하다.(Linux의 curl과 같은 기능을 제공)Invoke-WebRequestPowershell 3.0부터 Invoke-WebRequest라는 cmdlet이 도입되었다.Powershell에서 PSVersionTable을 입력해보면 해당 컴퓨터의 Powershell 버전을 확인할 수 있다. $PSVersionTable 버전 3.0 이상이 설치된 컴퓨터라면 Invoke-WebRequest 명령어를 사용하여 http 혹은 https 요청을 발.. 2024. 9. 27.
Effective C# Item 42 : IEnumerable<T> 데이터 소스와 IQueryable<T> 데이터 소스를 구분하라 IEnumerable 데이터 소스와 IQueryable 데이터 소스를 구분하라IQueryable와 IEnumerable는 거의 동일한 API 정의를 가진다. 따라서 이 두 인터페이스는 상호 교환 가능하다고 생각할 것이며 실제로도 대부분 그렇다. 이는 사실 의도한 설계이기도 하다. 하지만 시퀀스는 그냥 시퀀스일 뿐이어서 항상 이 둘을 서로 대체하여 사용할 수 있는 것은 아니다. 사실 이 둘은 동작 방식도 매우 다르고 성능 차이도 크게 난다. 다음의 예를 살펴보자. // 첫번째 예var q = from c in dbContext.Customers where c.City == "London" select c;var finalAnswer = from c in q orderby c.Name select c;// .. 2024. 9. 25.