• 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
45 wizyt
pytanie zadane 13 czerwca w C i C++ przez PelikanFix16 Użytkownik (840 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 przez j23 Maniak (67,300 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 przez j23 Maniak (67,300 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 124 wizyt
pytanie zadane 29 czerwca 2017 w C i C++ przez Avernis Nałogowiec (27,030 p.)
0 głosów
2 odpowiedzi 65 wizyt
pytanie zadane 3 czerwca w JavaScript, jQuery, AJAX przez Filipotyk Użytkownik (620 p.)
+1 głos
1 odpowiedź 65 wizyt
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

54,442 zapytań

98,327 odpowiedzi

202,258 komentarzy

26,743 pasjonatów

Przeglądających: 153
Pasjonatów: 4 Gości: 149

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.

...