使用Volley向Rails服务器发送登录参数



链接到Rails服务器。https://afternoon-sea-5654.herokuapp.com.我想发送一个简单的JSON POST来尝试登录。我得到以下凌空抽射错误

错误

04-09 14:03:56.156 3002-3031/com.digitalnatives.volleytest E/Volley﹕[244]BasicNetwork.performRequest:的意外响应代码500https://afternoon-sea-5654.herokuapp.com/sessions/create04-09 14:03:56.160 3002-3002/com.digitalnatives.volleytest E/Volley﹕[1] 4.onErrorResponse:错误:


我不知道这是否取决于我格式化请求的方式。下面是一个手动使用curl的登录请求示例。

登录-curl-X POST-d"用户[电子邮件]=ywaghmare5203@gmail.com&user[密码]=12345678&"https://afternoon-sea-5654.herokuapp.com/sessions/create.json

请求参数:电子邮件、密码、

响应参数:

{"id":10,"username":"yogeshwaghmare1","email":"ywaghmare5203@gmail.com","password_hash":"$2a$10$pvLhzJlVz8Hl86O7N/ekiO2wrwNxbfTZlYPtccY4f7vXYNFs1vq6a","password_salt":"2a$10$PVLhzjlVz8 Hl86O3N/ekiO","last_login_time":null,"is_active":null、"contact_number":"123456"、"created_at":"2015-04-01T19:37.552Z","updated_at":"}

JSONObject请求代码

   public void loginTest() {
   private final String LOGIN = "https://afternoon-sea-5654.herokuapp.com/sessions/create";
// Post params to be sent to the server
    HashMap<String, String> params = new HashMap<String, String>();
        // old test code :  params.put("user[email]=test1@gmail.com&",     "user[password]=12345678&");
          params.put("user[email]", "test1@gmail.com");
          params.put("user[password]", "12345678");

    JsonObjectRequest req = new JsonObjectRequest(LOGIN, new JSONObject(params),
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        VolleyLog.v("Response:%n %s", response.toString(4));
                        responseText.setText("Worked!");
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
        new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            VolleyLog.e("Error: ", error.getMessage());
            responseText.setText("Nope");
        }
    });
// add the request object to the queue to be executed
    AppController.getInstance().addToRequestQueue(req);
}

实际上,作为响应,您没有获取JSON数据。它正在返回一条关于重定向的HTML消息。您的回复是302

响应代码500表示这是服务器端的语法错误。您可以通过在线api测试平台测试您的api,如Runscope。当我们与网络团队和安卓团队合作时,它确实节省了我们的时间和困惑。

Runscope链接

相关内容

  • 没有找到相关文章

最新更新