c++ - 使用 C++ 的简单 HTTP 请求

标签 c++ http request libcurl

在您将此标记为冗余之前,请注意我已经尝试了很多网上发布的方法(包括堆栈溢出),但它们都不能满足我的需求。另请注意,我对编程世界还很陌生,所以请原谅我滥用技术术语。

现在我正在编写一个 C++ 程序来计算来自用户计算机的一些数据(例如 IP 地址),然后我将 IP 地址发送到已经设置好的服务器。我通过 URL 执行此操作。例如,如果服务器位于 http://stack1234abcdz.com , 而用户的 IP 地址是 100.100.100.100 , 那么我会请求

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

我已经尝试过 libcurl 并且它在某种程度上可以工作,但是在编译之后,我需要在与 .exe 相同的目录中有 5 个 .dll 才能运行它,但由于我的问题的一些可移植性,我不能拥有它。

我也尝试过其他一些传统的套接字方法,但它们需要大量的库和 SDK,很难配置,而且它们常常让像我这样的新手不知所措。我需要做的事情非常简单(我什至不需要服务器发回任何东西,除了可能成功或失败的代码),因此我认为我不应该需要做那么多的事情。

我在 Windows 7(64 位)机器上使用 Visual Studio 2006,使用 C++。我不能使用较新的版本,因为提供给我的大多数其他代码都在 VS2006 中,并且它们不能很好地传输/转换到较新的版本。

我想我现在想问的是我接下来应该做什么。有没有办法让带有 libcurl 的可执行文件不使用 5 .dll?我在某个地方看到我必须做一些静态链接的事情,但它们不是很具体。

或者是否有更简单的方法来解决我忽略的问题?网络? CAtlHttpClientT?卡萨布兰卡?我不想安装和配置我还没有完全理解的复杂库,尤其是考虑到我的问题的规模...

我将不胜感激任何关于此事的帮助/意见/反馈,谢谢!

最佳答案

经过多次试验和错误,我解决了自己的问题。 我在 CInternetSession 类中使用了 OpenURL() 函数。 在大约 25 行代码中做了一个简单的打开。在包含 afxinet.h、stdafx.h、httpClient.h 时遇到了一些问题。该顺序对我有用,但对其他程序可能有所不同。

关于c++ - 使用 C++ 的简单 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23692602/

相关文章:

swift - Alamofire Swift 转换

c++ - 减少持久数据结构中的shared_ptr数量

php - 为什么不在这里使用 POST 方法?

http - 我可以使用元标记在一个 HTML 页面上声明两个不同的字符集吗?

android - Facebook Android SDK : get mutual friends

html - Favicon.ico 和静态服务器?

c++ - (num+mod)%mod 语句需要什么?

c++ - 支持 TLS 的 grpc 出错

C++:静态成员变量

php - 谷歌云存储的互操作访问授权请求失败,出现 'signature does not match' 错误