Android截击意外响应代码400
我正在使用Volley作为登录函数,但是我得到了https的意外响应代码400 它在WiFi上工作,但在蜂窝网络上不工作,而且问题只发生在选定的手机型号上。下面是我的代码Android截击意外响应代码400,android,http,android-volley,Android,Http,Android Volley,我正在使用Volley作为登录函数,但是我得到了https的意外响应代码400 它在WiFi上工作,但在蜂窝网络上不工作,而且问题只发生在选定的手机型号上。下面是我的代码 public void LoginRequest(final String username,final String password,final ActionResponse success,final Action err ){ RequestQueue queue = MVolleyRequests.getI
public void LoginRequest(final String username,final String password,final ActionResponse success,final Action err ){
RequestQueue queue = MVolleyRequests.getInstance(mContext).getRequestQueue();
StringRequest sr = new StringRequest(com.android.volley.Request.Method.POST,LOGIN_URL,
new Listener<String>() {
@Override
public void onResponse(String response) {
success.action(MError.getError(Integer.parseInt(response)));
}
}, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
err.action();
}
}){
@Override
protected Map<String,String> getParams(){
Map<String,String> params = new HashMap<String, String>();
params.put("id", username);
params.put("pwd", password);
params.put("version", "2.5" );
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> params = new HashMap<String, String>();
params.put("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
return params;
}
};
sr.setRetryPolicy(new DefaultRetryPolicy(
60000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
MVolleyRequests.getInstance(mContext).addToRequestQueue(sr);
}
public void LoginRequest(最终字符串用户名、最终字符串密码、最终操作响应成功、最终操作错误){
RequestQueue queue=MVolleyRequests.getInstance(mContext.getRequestQueue();
StringRequest sr=newStringRequest(com.android.volley.Request.Method.POST,LOGIN\uURL,
新侦听器(){
@凌驾
公共void onResponse(字符串响应){
action(MError.getError(Integer.parseInt(response));
}
},新的ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
错误动作();
}
}){
@凌驾
受保护的映射getParams(){
Map params=新的HashMap();
参数put(“id”,用户名);
参数put(“pwd”,密码);
参数put(“版本”、“2.5”);
返回参数;
}
@凌驾
公共映射getHeaders()引发AuthFailureError{
Map params=新的HashMap();
参数put(“内容类型”,“应用程序/x-www-form-urlencoded;字符集=utf-8”);
返回参数;
}
};
高级setRetryPolicy(新的DefaultRetryPolicy)(
60000,
DefaultRetryPolicy.DEFAULT\u最大重试次数,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
getInstance(mContext).addToRequestQueue(sr);
}
试试这个:
JSONObject params = new JSONObject();
try {
params.put("id", username);
params.put("pwd", password);
params.put("version", "2.5" );
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST,
url, params,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
}) {
/**
* Passing some request headers
* */
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json; charset=utf-8");
return headers;
}
};
jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(60000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
// Adding request to request queue
getRequestQueue(jsonObjReq);
JSONObject params=new JSONObject();
试一试{
参数put(“id”,用户名);
参数put(“pwd”,密码);
参数put(“版本”、“2.5”);
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
//
JsonObjectRequest JSONObjectReq=新的JsonObjectRequest(Method.POST,
url,参数,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
Log.d(TAG,response.toString());
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
d(标记“Error:+Error.getMessage());
}
}) {
/**
*传递一些请求头
* */
@凌驾
公共映射getHeaders()引发AuthFailureError{
HashMap headers=新的HashMap();
headers.put(“内容类型”、“应用程序/json;字符集=utf-8”);
返回标题;
}
};
jsonObjReq.setRetryPolicy(新的DefaultRetryPolicy(60000,
DefaultRetryPolicy.DEFAULT\u最大重试次数,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
//将请求添加到请求队列
getRequestQueue(jsonObjReq);
你在呼叫哪个URL?@A.S.这是一个https链接