HTTP Get Request in C++
HTTP Get Request in C++
我需要发送一个HTTP GET请求到我的网站,然后获得页面的内容并解析它。我不喜欢使用libCURL这样的库,因为我希望最终的应用程序是完全独立的(这是引用个人经验,我可能是错的,但如果我记得客户端必须有某些动态链接库来运行libCURL库的应用程序),我在Visual Studio 2012中使用c++。
代码示例也很好。
当您不想使用外部库时,您将不得不自己实现HTTP。当你只需要基本的功能(直接下载文件,没有重定向,没有代理,没有cookie,没有身份验证,没有加密,没有压缩,没有其他诡计),这甚至不是那么难。
创建一个套接字,将其连接到web服务器的80端口,并发送以下字符串到服务器:
"GET /example.html HTTP/1.1rn"
"Host: www.example.comrn"
"rn"
从您连接的服务器请求文件www.example.com/example.html。
服务器将使用自己的HTTP响应头和数据(或错误描述)进行响应。
- 大多数库都可以静态编译。当你使用一个静态库时,它被链接到你的可执行文件中,你不需要提供库的dll。也许这将有助于:攻略:创建和使用静态库(c++)
- 一些库可以是头文件的,或者在头文件的模式下使用:编译器将库拉入你的源代码。同样,不会为库生成dll。例如,您可以尝试让Asio和cpp-netlib在仅标头模式下为您工作。这里还有一个简单的http客户端示例,仅供Asio使用。
- 我认为你可以使用WinINet或WinHTTP而不附带任何dll。
下面是一个简单的c++ GET请求代码
std::string GET(std::string url) {
std::string cmd = "curl -s " + url;
FILE *p = popen(cmd.c_str(), "r");
char buffer[2];
std::string body;
if (!p) {
return "Error";
}
while (fgets(buffer, sizeof(buffer), p)) {
body += buffer;
}
return body;
}
使用:std::string response = GET("https://example.com");
// Do actions with response
祝你好运!
相关文章:
- netcat command in c++
- Difference in displaying cv2 Mat
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- IF-nesting in c++
- Gurobi GRBModel and GRBmodel in C++
- Tensorflow Hub in C++
- Centos7 g++ "to_string is not in a member of std"
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- 将 lambda 表达式传递给 std::function in C++
- @CPPFLAGS@在 Makefile.in 中意味着什么?
- std::async from std::async in windows xp