• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Boos.Asio zapytanie https

0 głosów
55 wizyt
pytanie zadane 13 czerwca 2018 w C i C++ przez PelikanFix16 Użytkownik (950 p.)

Dzień dobry, chciałem napisać program do pobierania HTML ze strony przy użyciu biblioteki Boost.Asio.

Program nie pobiera całej strony HTML.

Przy pisaniu pomagałem sobie tą stronką.

#include <boost/asio.hpp>
#include <boost/asio/ssl.hpp>
#include <iostream>
#include <stdio.h>

int main(int argc,char* argv[]) {
  
  
  using boost::asio::ip::tcp;
  namespace ssl = boost::asio::ssl;
  typedef ssl::stream<tcp::socket> ssl_socket;
  ssl::context ctx(ssl::context::sslv23);
  ctx.set_default_verify_paths();  
  boost::asio::io_service io_service;
  ssl_socket sock(io_service, ctx);
  tcp::resolver resolver(io_service);
  tcp::resolver::query query("www.google.pl", "https");
  boost::asio::connect(sock.lowest_layer(), resolver.resolve(query));
  sock.lowest_layer().set_option(tcp::no_delay(true));
  sock.set_verify_mode(ssl::verify_peer);
  sock.set_verify_callback(ssl::rfc2818_verification("www.google.pl"));
  sock.handshake(ssl_socket::client); 


  std::array<char,90000> bufferRead;
  boost::system::error_code ec;
  sock.write_some(boost::asio::buffer("GET / HTTP/1.1\r\nHost: www.google.pl\r\nConnection: close\r\n\r\n"));

  while(!ec){
    sock.read_some(boost::asio::buffer(bufferRead),ec);
    

  }

  std::cout << bufferRead.data();
  
  


  return 0;
}

 

komentarz 14 czerwca 2018 przez j23 VIP (106,380 p.)
Że tak nieśmiało zapytam: a dlaczego nie libcurl, który posiada obsługę protokołu HTTP?

1 odpowiedź

0 głosów
odpowiedź 14 czerwca 2018 przez j23 VIP (106,380 p.)

Tak czytaj:

std::string page_content;
size_t bytes_read;

while((bytes_read = sock.read_some(boost::asio::buffer(bufferRead), ec)) > 0)
{
	page_content.append(bufferRead.data(), bytes_read));
}


std::cout << page_content << '\n';

 

Podobne pytania

+1 głos
0 odpowiedzi 181 wizyt
pytanie zadane 29 czerwca 2017 w C i C++ przez Avernis Nałogowiec (27,070 p.)
0 głosów
0 odpowiedzi 21 wizyt
Porady nie od parady
Zadając pytanie postaraj się o poprawną pisownię i czytelne formatowanie tekstu.Kompozycja

66,503 zapytań

113,269 odpowiedzi

239,876 komentarzy

46,641 pasjonatów

Przeglądających: 258
Pasjonatów: 7 Gości: 251

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...