• 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
42 wizyt
pytanie zadane 13 czerwca w C i C++ przez PelikanFix16 Użytkownik (820 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 (61,000 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 (61,000 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 102 wizyt
pytanie zadane 29 czerwca 2017 w C i C++ przez Avernis Nałogowiec (27,010 p.)
0 głosów
2 odpowiedzi 51 wizyt
pytanie zadane 3 czerwca w JavaScript, jQuery, AJAX przez Filipotyk Użytkownik (620 p.)
+1 głos
1 odpowiedź 59 wizyt
Porady nie od parady
Możesz ukryć, zamknąć lub zmodyfikować swoje pytanie, za pomocą przycisków znajdujących się pod nim. Nie krępuj się poprawić pochopnie opublikowanego pytania czy zamknąć go po uzyskaniu satysfakcjonującej odpowiedzi. Umożliwi to zachowanie porządku na forum.Przyciski pytania

51,027 zapytań

93,344 odpowiedzi

189,543 komentarzy

24,885 pasjonatów

Przeglądających: 302
Pasjonatów: 12 Gości: 290

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.

...