【发布时间】:2017-12-08 02:33:33
【问题描述】:
我正在尝试构建一个程序,该程序将接收股票行情、运行谷歌搜索并输出数据(当前价格、最高价、最低价、百分比变化等)。我正在尝试使用 boost asio,但它没有从服务器返回任何数据。
#include "stdafx.h"
#include <iostream>
#include <istream>
#include <ostream>
#include <string>
#include <boost/asio.hpp>
std::string getStockPage(std::string ticker) {
boost::asio::ip::tcp::iostream stream;
stream.connect("www.google.com", "http");
std::cout << "connected\n";
stream << "GET /search?q=" << ticker << " HTTP/1.1\r\n";
stream << "Host: www.google.com\r\n";
stream << "Cache-Control: no-cache\r\n";
//stream << "Content-Type: application/x-www-form-urlencoded\r\n\r\n";
stream << "Connection: close\r\n\r\n";
std::cout << "sent\n";
std::ostringstream os;
//os << stream.rdbuf();
char buffer[100];
os << stream.readsome(buffer, 100);
return std::string(buffer, 100);
}
int main() {
std::cout << getStockPage("$tsla");
std::cout << "done\n";
std::string temp;
std::getline(std::cin, temp);
return 0;
}
我尝试只读取前 100 个字符,看看它是否在输出响应时出现问题,但它只输出空字符。我希望它输出整个谷歌页面“www.google.com/search?q=$tsla”
任何帮助将不胜感激!
【问题讨论】:
标签: c++ boost boost-asio