我討厭捲曲它是有太多的依賴過於龐大,當所有我需要做的是迅速打開一個URL。我甚至不需要檢索網頁的內容,我只需要向服務器發送GET HTTP請求。C++有沒有CURL的替代品?
什麼是最起碼這樣我可以做到這一點,就不多說了捲曲!@#$
我討厭捲曲它是有太多的依賴過於龐大,當所有我需要做的是迅速打開一個URL。我甚至不需要檢索網頁的內容,我只需要向服務器發送GET HTTP請求。C++有沒有CURL的替代品?
什麼是最起碼這樣我可以做到這一點,就不多說了捲曲!@#$
有lots of choices!嘗試libwww - 但被警告,大多數人都強烈希望libcurl
。使用起來更容易。
甚至當你在2009年回答它時完全放棄了圖書館。 – Lothar 2017-05-26 12:48:30
system("wget -q -O file.htm http://url.com");
當然這需要wget存在於目標機器上。 – 2009-11-30 01:04:20
使用'system'通常不是一個好主意,特別是如果部分命令是由(不可信或愚蠢的)用戶提供的話。例如,如果用戶提供了「http://url.com; rm -rf〜'作爲url,該命令可能會刪除你的主目錄。 – chtz 2017-06-07 10:51:13
有一個很輕的方式,我已經實現了在英國大媒體提供一個高規模的後端服務時,這樣做我自己。
這種方法極其操作系統特定。
GET /path/to/url HTTP/1.1\r\nHost: www.host.com\r\n\r\n
」(在Host
頭,不要忘了兩個空行和一個換行符要求回車以及爲HTTP標頭)如果你想你可以在連接結束ALS關閉套接字o想要發送Connection: close\r\n
作爲標題的一部分,以通知Web服務器您將在檢索網頁後終止連接。
如果你取一個編碼或生成的網頁在這種情況下,你必須添加邏輯來解釋提取的數據,您可能會遇到麻煩。
如果您在調用任何套接字函數之前使用Win32,則必須初始化Windows套接字層。見http://www.nullterminator.net/winsock。html的教程 - 請注意,你想創建一個客戶端,而不是服務器。 – 2009-11-29 20:39:48
在Windows(Windows XP,Windows 2000 Professional SP3及更高版本)上,您可以使用WinHttpReadData API。該頁面底部還有一個例子。在MSDN
上Windows HTTP服務
更多信息我已經使用Winsock的時候,我需要儘可能少的依賴可能和它運作良好。您需要編寫比使用單獨的庫或Microsoft WinHTTP庫更多的代碼。
你需要的函數是WSAStartup,socket,connect,send,recv,closesocket和WSACleanup。
參見用於send函數的樣本代碼。
你是跨平臺的,或只是一個特定的一個? – 2009-11-29 19:12:06
我想這是關於LibCURL而不是CURL – Lothar 2017-05-26 12:47:54