web-dev-qa-db-ja.com

埋め込みプロジェクト用のC / C ++ HTTPクライアントライブラリ

そのため、StackOverflowとGoogleで検索結果のページやページをトロールしましたが、リソースに制約のある組み込み環境(ARMなど)に適したC/C++ HTTPクライアントライブラリはほとんど見つかりませんでした。ただし、デスクトップクラスのアプリケーションに適したものはかなりあります。

基本的に、HTTP GET、POSTおよびHEAD呼び出し(認証、ダウンロードのサポート付き)を行うための、シンプルで使いやすく、便利なAPI再開およびペイロード圧縮):フットプリントが小さく(外部依存関係がないか、最小限である)、オープンソース(許容ライセンスを使用)である場合に理想的です。

ここに私がこれまでに出くわしたものと、なぜそれらが適していないかのリストがあります-

私が知らないライブラリはありますか?

36
thegreendroid

MbedでHTTPClientを確認しましたか?数年前のオリジナルのフォークがたくさんあり、メンテナンスされていなかったようです。私はこれを使用していません...

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

13
escrafford

これらのタスクに使用したものを説明できます。

curl-怠け者の場合、ビルドされたバイナリでダウンロードするだけで、それ以上何もすることができません。非常に単純なヘッダーと多くの例があります。 3〜4個のビルド済みのライブラリとヘッダーが必要です。外部依存関係なし。それで、私はそれを低レベルとして数えますが、まったく重量級ではありません。

boost.asio-非常に興味深い実現のパラダイム、非常に簡単でクリーン。しかし、私はそれも低レベルだと思います。難しいcurl。ブーストを使用する必要があります。これは、回避したい外部依存関係です。

poco-HTTPサーバーに最適なソリューション。それは高レベルです。アプリケーションに参加した後は、他のすべての作業(およびスレッド管理)を完了して、いくつかの仮想機能を実装するだけで済みます。 Pocoは、アプリケーション管理、スレッド/プロセス管理のために多くのものを提供します。非常にシンプルで簡単です。Javaのようなインターフェースを備えているとさえ言えます。はい、pocoには外部依存関係がありますが、これを完璧なライブラリを学ぶチャンスと考えています。それでも、httpクライアントの場合は非常に重いです。

これが私のC++でのHTTPの経験です。クライアントだけが必要で、依存関係は必要ないと考えて、libcurlライブラリをご覧ください。それはクロスプラットフォームで、簡単で、依存関係がなく、ネットワークで必要なものすべてを得るのに十分な低レベルです。時間があれば、Pocoをご覧ください。私と同じように、あなたもこのライブラリに恋をするでしょう。お役に立てば幸いです。

3
Arkady

私は別のものを見つけました。それはただlibに詰める必要があります。テストしませんでしたが、一見の価値があるかもしれません:

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

3
Andik