【发布时间】:2016-07-11 21:32:18
【问题描述】:
我在我的 C++ 项目中使用了一个名为 HappyHTTP 的简单库(链接到库:https://github.com/Zintinio/HappyHTTP)
我想向我的 nodejs 服务器发送一个文件。
我的javascript代码如下:
var multer = require('multer');
var upload = multer({ dest: 'uploads/' });
router.post('/dicomPost',upload.single('dicom'),function (req,res) {
res.send(200);
})
这是我的 C++ 代码:
happyhttp::Connection conn( "127.0.0.1", 3000 );
conn.setcallbacks( OnBegin, OnData, OnComplete, 0 );
conn.putrequest( "POST", "/dicomPost" );
conn.putheader( "Connection", "close" );
conn.putheader( "Content-Length", l);
conn.putheader( "Content-type", "multipart/form-data" );
conn.putheader("Content-Disposition","name=dicom; filename=test.txt");
conn.putheader( "Accept", "text/plain" );
conn.endheaders();
while( conn.outstanding() )
conn.pump();
从我的 C++ 端,我可以发送正文数据,但是当涉及到文件时,我收到 500 内部服务器错误),请任何人都可以查看上面的 github 链接,看看为什么我的代码不是在职的。我不想用libcurl,因为它很大,我只想用一个lightwheight库作为HappyHttp来发帖。
提前谢谢你。
【问题讨论】:
-
我还没有查看库示例,但令我震惊的是,您并没有告诉库您要上传哪个文件。当然,您要求库告诉 http 客户端文件的名称,但如果库正在解析包含文件名的字符串、打开文件然后提供它,我会感到惊讶。我希望在 while 循环之前,在
conn.endheaders()之后有更多代码,事实上,在查看时,您需要自己读取和缓冲文件,然后再使用send方法发送数据。它在文档中:
标签: javascript c++ node.js http libcurl