我正在尝试将文件和其他POST变量发送到我服务器上的PHP脚本。谷歌没有很好的资源,我发现的代码示例不起作用。最好不要使用cURL。
答案 0 :(得分:4)
如果你打算自己动手,你需要相关的RFC for HTTP file uploading(谷歌搜索“rfc http文件上传”会产生相同的结果)。此RFC还显示了如何处理混合的文件和其他FORM数据(或POST变量)。问题当然是你可能也想阅读MIME RFC ......
答案 1 :(得分:2)
只需几个资源就可以轻松推出自己的
这是an example of a GET request via ASIO(Boost中的C ++网络库)
这是the HTTP protocol made really easy
GET请求是您查看网站上任何页面的方式。使用该代码,您可以下载任何页面并将其作为原始文本。如您所见,它会向服务器发送GET标头。正如that HTTP protocol page中所述,POST request看起来像这样
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
答案 2 :(得分:1)
我会说你自己滚。它不太复杂。
在Wireshark中捕获从浏览器发送的HTTP帖子,并根据需要使用spec作为指南进行反向工程。 (请参阅下面的 Andreas Magnusson的答案,了解更多相关规范。)
我会亲自推荐这种方法来学习协议而不仅仅是纯粹的规范。从规范中学习东西很难。我宁愿通过已知的http客户端探索不同的行为,并尝试使用规范作为我的指南来弄清楚事情是如何工作的。
在您熟悉HTTP后,通过套接字格式化并发送数据。
另外,如果您不熟悉套接字编程,请查看Beej's guide to socket programming。
答案 3 :(得分:1)
另一种(更快速,更脏)的解决方案是使用实用程序,通过system()或类似的调用。 例如,wget实用程序有一个--post-file选项。
答案 4 :(得分:1)