首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DreamFactory -安卓截击超时错误

DreamFactory -安卓截击超时错误
EN

Stack Overflow用户
提问于 2016-01-29 15:54:15
回答 1查看 237关注 0票数 0

我正在尝试使用我的DreamFactory应用程序接口向用户登录,方法是对新会话执行POST erquest以获取令牌。但是我得到了一个截击出局的错误...

下面是我的代码:

代码语言:javascript
复制
public void getUserToken(View view){
    final EditText editText_username = (EditText)view.findViewById(R.id.username_name_edittext);
    final EditText editText_password = (EditText)view.findViewById(R.id.password_name_edittext);

    RequestQueue queue = Volley.newRequestQueue(getContext());
    String url = "http://my.virtual.machine/rest/user/session";

    JSONObject js = new JSONObject();

    try {
        js.put("email", editText_username.getText().toString());
        js.put("password", editText_password.getText().toString());
    } catch (JSONException e) {
        e.printStackTrace();
    }

    JsonObjectRequest userTokenRequest = new JsonObjectRequest(Request.Method.POST, url,js,
            new Response.Listener<JSONObject>()
            {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        userToken = response.getString("session_id");
                        userEmail = response.getString("email");
                        Log.d("UserToken Response", "OK => " + userToken);

                        getUserData();

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener()
            {
                @Override
                public void onErrorResponse(VolleyError error) {
                    // TODO Auto-generated method stub
                    Log.d("ERROR","error => "+error.toString());
                }
            }

    ) {
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String>  params = new HashMap<String, String>();
            params.put("X-DreamFactory-Application-Name", "xxx");

            return params;
        }
    };

    queue.add(userTokenRequest);

}

当我从Hurl.it运行POST请求时,一切都很正常……

EN

回答 1

Stack Overflow用户

发布于 2016-01-29 15:56:16

发现了问题,响应需要一些时间,所以通过添加一个延迟,它可以工作!:)

代码语言:javascript
复制
int socketTimeout =5000;//5 seconds - change to what you want
    RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
    userTokenRequest.setRetryPolicy(policy);

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

https://stackoverflow.com/questions/35079407

复制
相关文章

相似问题

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