Http 통신 어떤게 좋을까요?

안녕하세요.

Http 통신을 하는 방식이 여러개인데 어떤게 더 효율적인지 알고 싶습니다.

HttpRequest, WebClient, HttpClient, RestSharp 등 많아서… 어떤 게 더 좋은지 비교가 잘 안되어서 도움을 받고자 합니다.

API 통신을 주로 하고 있어서 안정성과 속도 면으로 성능을 보는 게 맞을까요?

많은 도움 부탁 드립니다.

6개의 좋아요

어떤 것을 사용하던 간에 큰 상관은 없어보입니다. 다만 최신 웹 프로토콜 사양을 잘 지원할 가능성이 높은 HttpClient를 중심으로, 다른 써드파티 라이브러리들을 선택적으로 사용하실 수 있을 것 같습니다. HttpRequest, WebClient는 닷넷 프레임워크 초창기부터 제공되던 API여서 프레임워크 버전을 타지 않고 폭넓게 사용할 수 있지만, 최신 웹 기술이나 비동기 관련 기능이 일부 빠져있을 수 있습니다.

종속성을 추가하더라도 큰 문제가 없는 백엔드 서비스 계통에서는 자유롭게 선택하실 수 있겠지만, 배포 용량에 민감한 클라이언트 애플리케이션 (혹은 블레이저 애플리케이션)에서는 기본 라이브러리 선에서 해결하는 것이 배포 용량에서 유리한 점이 있습니다.

5개의 좋아요

restSharp은 잘 모르겠지만 api 연결하는데 뭐 대단한게 없어서 외부라이브러리 쓸 이유는 없어보입니다.
WebClient는 클라이언트에서 파일을 다운로드하는등 api 호출외에도 자잘한게 많아서 api호출용으로 좋진 않습니다.

HttpClient랑 HttpWebRequest의 차이는 주체가 누가되냐의 차이입니다. (둘다 비동기 async/await 지원합니다)
메세지를 중심으로 할거라면 HttpWebRequest를, Http세션을 중심으로 생각할거라면 HttpWebRequest를 사용하시면 됩니다. 보통 어플리케이션은 하나의 세션을 갖기 때문에 HttpClient를 써도 되고 구체적인 구현의 중심을 어디에 둘지에 따라 둘중에 골라쓰시면 됩니다.

예를들면 httpClient 는 base address나 기본헤더값들을 미리 세팅해줄 수 있지만 web request는 메세지마다 base url과 기본헤더들을 일일이 관리해줘야해요

6개의 좋아요