我正在尝试使用Loopj Async Http Client从Android App请求一个post方法,并使用使用Multer Node Server处理请求使用下面的代码
步骤1
public static void post(String url, File entity, AsyncHttpResponseHandler responseHandler) { RequestParams params = new RequestParams(); try { params.put("image",entity); } catch (FileNotFoundException e) { e.printStackTrace(); } client.post(getAbsoluteUrl(url), params, responseHandler); }getAbsoluteUrl返回实际的Url以发布请求
第2步(节点服务器)
router.post('/upload_image', function(req, res) { console.log(req.files); });但是,在收到请求后,我的节点js服务器抛出了一些我无法理解的错误,经过几个小时的谷歌搜索和搜索其他选项后,我仍然无能为力解决问题。
这是问题:
POST /upload_image 500 1537.367 ms - 2057 Error: Unexpected field at makeError (/home/jkrishna/Documents/ProjectX/node_modules/multer/lib/make-error.js:12:13) at wrappedFileFilter (/home/jkrishna/Documents/ProjectX/node_modules/multer/index.js:39:19) at Busboy.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/lib/make-middleware.js:112:7) at Busboy.EventEmitter.emit (events.js:106:17) at Busboy.emit (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/lib/main.js:31:35) at PartStream.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/lib/types/multipart.js:213:13) at PartStream.EventEmitter.emit (events.js:95:17) at HeaderParser.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/Dicer.js:51:16) at HeaderParser.EventEmitter.emit (events.js:95:17) at HeaderParser._finish (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/HeaderParser.js:68:8) at SBMH.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/HeaderParser.js:40:12) at SBMH.EventEmitter.emit (events.js:95:17) at SBMH._sbmh_feed (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/lib/sbmh.js:95:16) at SBMH.push (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/lib/sbmh.js:56:14) at HeaderParser.push (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/HeaderParser.js:46:19) at Dicer._oninfo (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/Dicer.js:197:25)I am trying a request a post method from Android App using Loopj Async Http Client, and handling the request using Node Server which uses Multer By using the code Below
Step-1
public static void post(String url, File entity, AsyncHttpResponseHandler responseHandler) { RequestParams params = new RequestParams(); try { params.put("image",entity); } catch (FileNotFoundException e) { e.printStackTrace(); } client.post(getAbsoluteUrl(url), params, responseHandler); }The getAbsoluteUrl return the actual Url to post the request
Step-2 (Node Server)
router.post('/upload_image', function(req, res) { console.log(req.files); });But, after receiving the request my node js server is throwing some error like this which i cannot Understand, After few hours of googling and searching for other option i am still clueless to solve the issue.
Here is the issue:
POST /upload_image 500 1537.367 ms - 2057 Error: Unexpected field at makeError (/home/jkrishna/Documents/ProjectX/node_modules/multer/lib/make-error.js:12:13) at wrappedFileFilter (/home/jkrishna/Documents/ProjectX/node_modules/multer/index.js:39:19) at Busboy.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/lib/make-middleware.js:112:7) at Busboy.EventEmitter.emit (events.js:106:17) at Busboy.emit (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/lib/main.js:31:35) at PartStream.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/lib/types/multipart.js:213:13) at PartStream.EventEmitter.emit (events.js:95:17) at HeaderParser.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/Dicer.js:51:16) at HeaderParser.EventEmitter.emit (events.js:95:17) at HeaderParser._finish (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/HeaderParser.js:68:8) at SBMH.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/HeaderParser.js:40:12) at SBMH.EventEmitter.emit (events.js:95:17) at SBMH._sbmh_feed (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/lib/sbmh.js:95:16) at SBMH.push (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/lib/sbmh.js:56:14) at HeaderParser.push (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/HeaderParser.js:46:19) at Dicer._oninfo (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/Dicer.js:197:25)最满意答案
问题是你已经配置了multer来查找字段名称为'file' ,但是在你的Android代码中你发送了一个名为'image'的字段。 改变其中一个,它应该工作。
The problem is that you've configured multer to look for a file whose field name is 'file', but in your Android code you're sending a field named 'image'. Change one or the other and it should work.
更多推荐
js,post,request,请求,home,电脑培训,计算机培训,IT培训"/> <meta name="descr
发布评论