2011-11-24 93 views
2

我想從我的C++應用程序中調用用WCF編寫的休息服務(它可以支持XML和JSON Web消息格式)。如何在C++中調用Rest服務?

達到此目的的最佳解決方案是什麼?我見過一些實用程序(gsoap),它們爲您創建用於調用Web服務的代理類。

我可以在不使用任何中間工具的情況下實現相同的功能嗎?作爲一個休息服務,它使用基本的HTTP函數GET/PUT函數,是否有任何C++庫/解決方案可以用來直接從C++應用程序調用這些函數?

回答

3

在Linux上,你可能會使用curl庫(我猜它已經移植到Windows)。 Curl是爲C或C++程序提供HTTP客戶端功能的庫。

+0

這聽起來很明智 - CURL是一個非常強大的HTTP編程庫。 – Dave

0

使用Casablanca。這對於在2013年尋找這個答案的人應該是有幫助的。CURL非常合適,但是如果你在Windows中使用C++並使用MS,那麼卡薩布蘭卡似乎很合適。

+0

卡薩布蘭卡似乎不適用於C++,但僅適用於C++。NET – jstuardo

+0

不。它還支持macOS,iOS,Linux和Android。 https://github.com/Microsoft/cpprestsdk/wiki – Dalinaum

1

我嘗試gsoap自己,但它很難保持我的應用程序的跨平臺版本。 相反,我去了HTTP請求路由。 對於跨平臺和C++我發現這Call Rest Web Services from C++

0

如果真的不需要使用REST方法進行XML序列化,那麼使用curl是完美的。但是,如果您希望在C或C++中使用類型安全的XML序列化,那麼使用curl會變得很麻煩,因爲您將不得不使用curl之上運行的某些內容來處理XML,比如使用DOM解析器(緩慢而不是類型)安全)。如果你有一個WSDL,那麼我推薦gSOAP 2.8,它提供了集成的REST和XML序列化功能(當你需要時可以使用JSON)。