programing

임베디드 프로젝트용 C/C++ HTTP 클라이언트 라이브러리

javamemo 2023. 6. 9. 21:41
반응형

임베디드 프로젝트용 C/C++ HTTP 클라이언트 라이브러리

그래서 저는 StackOverflow와 Google에서 검색 결과 페이지와 페이지를 살펴보았고 리소스가 제한된 임베디드 환경(예: ARM)에 적합한 C/C++ HTTP 클라이언트 라이브러리를 거의 보지 못했습니다.그러나 데스크톱급 애플리케이션에 적합한 제품을 많이 발견했습니다.

기본적으로 저는 HTTP GET, POST 및 HEAD 통화(인증, 다운로드 이력서 및 페이로드 압축 지원)를 하기 위한 간단하고 사용하기 쉽고 편리한 API를 찾고 있습니다.설치 공간이 작고(즉, 외부 의존성이 없거나 최소) 오픈 소스(허용 라이센스 포함)인 경우 이상적입니다.

여기 제가 지금까지 발견한 것과 왜 그것들이 적합하지 않은지에 대한 목록이 있습니다.

  • - 너무 무겁습니다.
  • 포코 - 너무 무거운 중량
  • 네온 - GPL
  • qlibc - POSIX 라이브러리에 의존합니다.
  • cpp-netlib - Boost 라이브러리에 의존합니다.
  • serf - Apache Portable Runtime 라이브러리에 의존합니다.
  • urdl - Boost 라이브러리에 의존합니다.
  • HTTP Client C API - 유망하지만 C++ 래퍼가 필요합니다.

제가 모르는 도서관이 있습니까? 아니면 제가 도서관을 굴리는 것이 더 나은가요?

mbed에 있는 HTTP 클라이언트를 살펴보았습니까?몇 년 전에 보존되지 않은 원본 포크가 많이 있는 것 같습니다.난 이걸 써본 적이 없어요

http://mbed.org/users/WiredHome/code/HTTPClient/

저는 제가 그 작업에 사용한 것을 설명할 수 있습니다.

curl - 만약 당신이 게으른다면, 당신은 내장된 바이너리를 다운로드할 수 있고 더 이상 할 일이 없으며, 그것은 매우 간단한 헤더와 많은 예제를 가지고 있습니다.이미 구축된 3-4개의 라이브러리와 헤더가 필요합니다.외부 종속성이 없습니다.그래서, 저는 그것이 너무 낮은 수준이지만, 전혀 무겁지 않다고 생각합니다.

boost.asio - 매우 흥미로운 실현 패러다임으로, 꽤 쉽고 깨끗합니다.하지만 저는 그것도 낮은 수준이라고 말하고 싶습니다. 세게, 더 세게.그리고 여러분이 피하고 싶은 것은 외부 의존성인 부스트를 사용해야 합니다.

poco - http 서버를 위한 최상의 솔루션입니다.애플리케이션에 가입한 후에는 가상 기능을 거의 구현하지 않고 다른 모든 작업(및 스레드 관리)만 수행하면 됩니다.Poco는 응용 프로그램 관리, 스레드/프로세스 관리를 위한 많은 것을 제공하며 매우 간단하고 쉽습니다. 심지어 Java와 같은 인터페이스를 가지고 있다고 말할 수 있습니다.네, poco에 대한 외부 의존성이 있지만, 저는 이것을 완벽한 도서관을 배울 수 있는 기회로 보고 싶습니다.여전히, http 고객들에게 그것은 정말 무겁습니다.

이것이 HTTP에 대한 저의 C++ 경험의 전부입니다.당신은 단지 클라이언트만 필요하고 의존성은 필요하지 않다는 것을 고려하면, 나는 당신에게 libcurl 라이브러리를 볼 것을 제안합니다.크로스 플랫폼이며, 쉽고, 의존성이 없으며, 네트워크를 통해 필요한 모든 것을 얻을 수 있을 정도로 충분히 낮은 수준입니다.그리고 시간이 있다면 - Poco를 보세요, 정말로, 저처럼 당신도 이 도서관과 사랑에 빠질 것이라고 믿습니다.그것이 도움이 되길 바랍니다.

저는 lib에 포장만 하면 되는 다른 것을 발견했습니다. 테스트하지는 않았지만, 볼 가치가 있을 수 있습니다.

https://github.com/reagent/http.git

언급URL : https://stackoverflow.com/questions/23842394/c-c-http-client-library-for-embedded-projects

반응형