用c++编写的简单HTTP请求

Simple HTTP request with C++

本文关键字:简单 HTTP 请求 c++      更新时间:2023-10-16

在你把这个标记为冗余之前,要知道我已经尝试了很多在网上发布的方法(包括堆栈溢出),它们都不能满足我的需求。另外请注意,我对编程世界还是个新手,所以请原谅我误用了一些技术术语。

现在我正在编写一个c++程序,它从用户的计算机(例如IP地址)中计算一些数据,然后我将IP地址发送到已经设置好的服务器。我通过URL来实现。例如,如果服务器是http://stack1234abcdz.com,用户的IP地址是100.100.100.100,那么我将请求

http://stack1234abcdz.com/?ip="100.100.100.100

我尝试过libcurl,它在某种程度上起作用,但在编译后,我需要5 .dll在与。exe相同的目录下才能运行它,由于我的问题的一些可移植性,我不能拥有。

我也尝试过其他一些传统的套接字方法,但它们需要大量的库和sdk,很难配置,而且像我这样的新手经常被它们压垮。我需要做的是非常简单的(我甚至不需要服务器发送任何东西,除了可能成功或失败代码),因此我不认为我应该需要这么多做这么少。

我在Windows 7(64位)机器上使用Visual Studio 2006,做c++。我不能使用新版本,因为给我的大多数其他代码都是在VS2006中,它们不能很好地转移/转换到新版本。

我想我现在问的是我下一步应该做什么。是否有一种方法可以使libcurl的可执行文件不使用5 .dll?我看到我必须做一些静态链接的东西,但他们不是很具体。

或者有没有更简单的方法来解决我忽略的问题?经由WinInet吗?CAtlHttpClientT吗?卡萨布兰卡?我不喜欢安装和配置复杂的库,我还没有掌握我的思想,特别是不是我的问题的大小…

我将感谢任何关于这件事的帮助/意见/反馈,谢谢!

经过多次试验和错误,我解决了我自己的问题。我在CInternetSession类中使用了OpenURL()函数。在大约25行代码中做了一个简单的打开。在包括afxinet.h, stdafx.h, httpClient.h时遇到了一些问题。