首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongoose和Android截击

Mongoose和Android截击
EN

Stack Overflow用户
提问于 2015-06-28 11:32:10
回答 1查看 795关注 0票数 1

我正在尝试与express (node.js)服务器(服务器也使用mongoose)通信Android客户端(使用volley )。请求的Android代码是

代码语言:javascript
复制
    String url = "http://10.0.2.2:3000/tasks/";

 CustomRequest myRequest = new CustomRequest(Request.Method.POST, url, params, new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    Log.i("ApP CreateActivity","Response Secussfully" );


                    Log.i("ApP CreateActivity", "HTTP REPONCE RECIEVED " + response.toString());
                    try {
                        JSONObject myCreditentials = response.getJSONObject(0);
                        Log.i("ApP CreateActivity", "SECUSSFUL LOGIN");

                        }

                    } catch (JSONException e) {
                        e.printStackTrace();
                        Log.i("ApP CreateActivity", "JSON EXCEPTION");
                    }
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.i("ApP CreateActivity", "Error While Fetch Response --> network Error");



                }
            });

            myRequest.setTag("createtask");
            queue.add(myRequest);

现在在服务器端有两个不同的代码。

代码语言:javascript
复制
version-1
    router.post('/tasks/', function(req, res, next) {
    Task.find(function (err, todos) {
    if (err) return next(err);
    console.log('------------------------------');
    console.log('Find Works');
    console.log('------------------------------');
    res.json(todos);
  });
version-2
router.post('/tasks/', function(req, res, next) {
    var myTask = new Task();
    // initialization --> myTask...
    myTask.save( function (err, todos) {
    if (err) return next(err);
    res.json( todos );
    console.log('------------------------------');
    console.log('Create WOrks');
    console.log('------------------------------');
  });

现在的问题是Android -->版本1(查找任务)运行得很好。例如,Android日志显示"SUCCESSFUL LOGIN“Android --> version-2(Create Task)给出错误,即调用onErrorResponce。日志显示“获取响应时出错”。

服务器输出版本-1: Fetch工作。(预期输出)。服务器输出版本2:创建工作。(数据正确添加到数据库中)。

EN

回答 1

Stack Overflow用户

发布于 2015-06-28 23:36:34

我解决了这个问题,如果你打印在errorResponce函数中传递的错误,它将显示这是一个JSON解析错误(版本2),而不是一些网络数组,响应应该是JSON- error.Actually,但它收到的是JSON-error.Actually。但这是一个错误,因此调用error-listener。因此,我将响应从JSON-OBJECT更改为JSON-ARRAY,问题就解决了。

代码语言:javascript
复制
     myTask.save( function (err, todos) {
    if (err) return next(err);
    var myTaskArray = [];
    myTaskArray.push(todos);
    res.json( myTaskArray );
    console.log('------------------------------');
    console.log('Something WOrks');
    console.log('------------------------------');    
  });

这是可行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31095880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档