我正在尝试使用我的DreamFactory应用程序接口向用户登录,方法是对新会话执行POST erquest以获取令牌。但是我得到了一个截击出局的错误...
下面是我的代码:
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请求时,一切都很正常……
发布于 2016-01-29 15:56:16
发现了问题,响应需要一些时间,所以通过添加一个延迟,它可以工作!:)
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);https://stackoverflow.com/questions/35079407
复制相似问题