2014-05-24 112 views
29

因此,我翻閱了StackOverflow和Google上搜索結果的頁面和頁面,並且遇到了適合資源受限的嵌入式環境的極少數C/C++ HTTP客戶端庫(例如ARM)。然而,我遇到了很多適合桌面級應用程序的應用程序。從本質上講,我是在一個簡單,易於使用和方便的API之後進行HTTP GET,POST和HEAD調用(支持身份驗證,下載恢復和有效負載壓縮)。如果它的佔地面積很小(即沒有或只有最小的外部依賴)並且是開源的(具有許可許可證),那將是理想的。用於嵌入式項目的C/C++ HTTP客戶端庫

這裏是我所遇到過這麼遠的列表以及它們爲什麼不適合 -

是否有任何圖書館,在那裏,我不知道的還是我我最好滾我自己?

+1

在與嵌入式和受限設備我的HTTP客戶端體驗,通過我自己的開發用C一個簡單的HTTP客戶端庫。 上面的所有解決方案都是重量級的,或者它們具有太多的依賴性。保羅。 – ppatierno

回答

1

我只能描述我用於這些任務的內容。

curl - 如果你是懶惰的,你可以下載構建的二進制文件,沒有什麼可做的,它有非常簡單的頭文件和大量的例子。你需要3-4個已經建好的庫和頭文件。沒有外部依賴性。所以,我認爲它太低級,但根本不重量級。

boost.asio - 非常有趣的實現範例,非常容易和乾淨。但我會說它也是低級的。更難的是curl。並且需要使用提升,這是你想要避免的外部依賴,我想。

poco - http服務器的最佳解決方案。它是高層次的,在你將它加入到你的應用程序後,你只需要實現一些虛擬功能,完成所有其他工作(和線程管理)。 Poco爲應用程序管理,線程/進程管理提供了很多東西,它非常簡單易用,我甚至會說它具有類似於java的界面。是的,外部依賴於poco,但我認爲這是一個學習完美圖書館的機會。不過,對於http客戶端來說,它確實很重。

這就是我所有使用HTTP的C++經驗。計數你只需要客戶端,不需要依賴關係,我會提供給你看看libcurl庫。它具有跨平臺,簡單,無依賴性和低層次的特點,足以滿足您在網絡上的所有需求。如果你有時間 - 看看波科,真的,我相信你會像我一樣愛上這個圖書館。 希望這會有所幫助。

+0

感謝您的回答!這些庫對於我正在開發的項目來說確實太重了,我只是不能證明拉入這樣一個巨大的庫。 – thegreendroid