作为网络浏览器的 Windows HTTP GET

问题描述

环境: Windows 10、Visual Studio 2017。

技能 C++专业; HTTP 新手;

问题: 我尝试从 iexTrading.com/apps/stocks/FDX 访问回复的 html 文本字符串,但没有成功。

尝试过 Winsock 函数 我尝试了一些函数 gethostbyname()、htons()、connect()、send() 和 recv(),它运行良好,例如对于站点“google.com”,帖子“GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n”有效。

对于站点“iexTrading.com”,帖子“GET / HTTP/1.1\r\nHost: www.iexTrading.com\r\n\r\n”返回:

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>Nginx</center>
</body>
</html>

如果我尝试获取 "GET / HTTP/1.1\r\nHost: www.iextrading.com/apps/stocks/FDX\r\n\r\n" 它说请求错误

但在任何网络浏览器中,我都看到“iexTrading.com”或“iexTrading.com/apps/stocks/FDX”工作正常。

期望: 是否有一个通用函数可以简单地返回与网络浏览器相同的 html 文本,或者如何读取特定的这个网址“iexTrading.com/apps/stocks/FDX”?

解决方法

主机名就是主机名。如果您想获取“http://iextrading.com/apps/stocks/FDX”,那么请求 URI 是“/apps/stocks/FDX”,而不是“/”。