我正在尝试将文件和其他POST变量发送到我的服务器上的PHP脚本。在谷歌上找不到好的资源,而我找到的代码示例也无法工作。最好不要使用cURL。
只需要几个资源就可以很容易地自己编写代码。
这里有一个使用ASIO(Boost中的C++网络库)进行GET请求的示例:async_client.cpp
这里是使HTTP协议变得非常简单的HTTP协议页面
GET请求是您可以查看站点上任何页面的方式。使用该代码,您可以下载任何页面并将其作为原始文本获取。如您所见,它向服务器发送了一个GET标头。正如在HTTP协议页面中解释的那样,POST请求如下所示:
POST /path/script.cgi HTTP/1.0 From:
frog@jmarshall.com User-Agent:
HTTPTool/1.0 Content-Type:
application/x-www-form-urlencoded
Content-Length: 32
home=Cosby&favorite+flavor=flies
我会建议你自己动手实践。这并不太复杂。
使用Wireshark捕获从浏览器发送的HTTP POST请求,并根据需要进行反向工程,使用规范作为指南。(也可以参考下面Andreas Magnusson的答案以获取更相关的规范)。
个人而言,我建议采用这种方法来学习协议,而不仅仅是遵循规范。仅仅通过规范来学习东西是相当困难的。我宁愿通过已知的HTTP客户端的不同行为来探索并尝试使用规范作为指南来弄清楚事情是如何工作的。
一旦你熟悉了HTTP,就可以相应地格式化和发送数据到套接字。
此外,如果你不熟悉套接字编程,请查看Beej's guide to socket programming。