我正在使用此代码:
#include <iostream>
#include <string>
#include <boost/asio.hpp>
int main()
{
boost::asio::ip::tcp::iostream s("www.a.com", "http");
if(!s)
std::cout << "Could not connect to www.a.com\n";
s << "GET /b.txt HTTP/1.0\r\n"
<< "Host: www.a.com\r\n"
<< "Accept: */*\r\n"
<< "Connection: close\r\n\r\n" ;
for(std::string line; getline(s, line); )
std::cout << line << '\n';
}
当然我使用的是合适的网站,而不是&#34; a.com&#34; 但我总是得到&#34;无法连接到www.a.com&#34; 知道为什么吗?
答案 0 :(得分:0)
您必须正确格式化您的请求。谷歌:
int main()
{
boost::asio::ip::tcp::iostream s("www.google.com", "http");
if(!s)
std::cout << "Could not connect to www.a.com\n";
s << "GET / HTTP/1.0\r\n"
<< "Host: www.google.com\r\n"
<< "User-Agent: Boost\r\n"
<< "Accept: */*\r\n"
<< "Connection: close\r\n\r\n" ;
for(std::string line; getline(s, line); )
std::cout << line << '\n';
}
注意,GET
后没有冒号。 /
是几乎任何网站的根路径。您是否也设置了Host:
?
上面的代码让我从谷歌获得200 OK。