使用cpp-httplib庫實現

金木大大大發表於2023-11-23

  ```cpp


  #include<iostream>


  #include<httplib>


  using namespace std;


  using namespace httplib;


  int main(){


  //建立一個HttpClient物件


  HttpClient client;


  //設定代理伺服器



  //設定下載的URL



  //傳送GET請求,並獲取響應


  Response response=client.Get(url);


  //檢查請求是否成功


  if(response.status==200){


  //獲取響應體的長度


  size_t length=response.body.size();


  //申請一個足夠大的緩衝區,用於儲存響應體


  char*buffer=new char[length];


  //將響應體複製到緩衝區


  memcpy(buffer,response.body.c_str(),length);


  //輸出緩衝區中的內容


  cout<<buffer<<endl;


  //刪除緩衝區


  delete[]buffer;


  }else{


  //輸出錯誤資訊


  cout<<"Error:"<<response.status<<endl;


  }


  return 0;


  }


  ```


  解釋:


  上述程式碼使用cpp-httplib庫實現了一個簡單的網頁下載器。使用HttpClient物件的Get方法傳送GET請求,並獲取響應。如果請求成功(即響應的狀態碼為200),則獲取響應體的長度,並申請一個足夠大的緩衝區,用於儲存響應體。然後將響應體複製到緩衝區,並輸出緩衝區中的內容。最後刪除緩衝區。如果請求失敗,則輸出錯誤資訊。需要注意的是,這個程式只能下載網頁的HTML內容,不能下載網頁中的圖片或其他資源。如果需要下載網頁中的圖片或其他資源,需要修改程式碼,以支援其他型別的HTTP請求。同時,這個程式也沒有處理可能出現的網路錯誤,如果網路連線出現問題,可能會導致程式崩潰。在實際使用中,需要根據具體情況,對程式碼進行適當的修改和最佳化。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70032566/viewspace-2996721/,如需轉載,請註明出處,否則將追究法律責任。

相關文章