簡體   English   中英

來自curl_easy_perform的管道數據

[英]Pipe data from curl_easy_perform

我正在嘗試使用libcurl將數據從任意(用戶指定的)URL傳遞到我的應用程序:

  • https.c示例顯示了如何從URL檢索內容並將其立即寫入到其中的某個位置,例如stdout或文件。
  • sendrecv.c示例演示如何通過使應用程序重復調用curl_easy_recv來檢索數據塊來設置管道。

但是我不明白如何將兩者結合起來。 似乎curl_easy_recv僅在以下curl_easy_recv下有效:

/* Do not do the transfer - only connect to host */ 
curl_easy_setopt(curl, CURLOPT_CONNECT_ONLY, 1L);

設置此選項后, curl_easy_perform不會檢索任何數據,它只會連接。 在該示例中,應用程序通過使用curl_easy_send手動發送http命令來curl_easy_send 但是,我只想檢索URL中指定的數據,而無需編寫手動的http或ftp命令。

有沒有一種方法可以使用curl_easy_recv或類似的方法與curl_easy_recv的默認行為結合使用, curl_easy_perform自動檢索URL中指定的內容?

首先, curl_easy_sendcurl_easy_recv實際上僅在不執行libcurl已經支持的協議之一的情況下才使用,因此在大多數情況下它們不是正確的答案。 聽起來好像您不需要它們。

curl_easy_perform ()進行給定URL的傳輸 ,一旦數據到達,它將立即調用CURLOPT_WRITEFUNCTION ,然后您可以使用該數據或將其發送到您選擇的某個地方。 這還不夠嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM