Android截击在移动互联网上的错误工作
当我使用移动互联网时,我在截击中发送标题时遇到一些问题。我发送两个标题:Android截击在移动互联网上的错误工作,android,android-volley,Android,Android Volley,当我使用移动互联网时,我在截击中发送标题时遇到一些问题。我发送两个标题:Cookie和(如果自以来进行了修改)Cookie在服务器上正确发送,但由于未到达服务器,因此如果进行修改,则会发送。如果我将标题名称更改为IfModifiedSince,或者更改为任何其他名称,它就会出现。在WiFi连接上,所有功能都能正常工作。 这是我的要求: Request request; request = new Request(Request.Method.GET, Addresses.new_c
Cookie
和(如果自
以来进行了修改)<代码>Cookie在服务器上正确发送,但由于未到达服务器,因此如果进行修改,则会发送。如果我将标题名称更改为IfModifiedSince
,或者更改为任何其他名称,它就会出现。在WiFi连接上,所有功能都能正常工作。
这是我的要求:
Request request;
request = new Request(Request.Method.GET, Addresses.new_count,
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (error.toString().contains("TimeoutError") || // "com.android.volley.TimeoutError".equals(error.toString())
"com.android.volley.TimeoutError.NoConnectionError".equals(error.toString())) { //.contains("com.android.volley.TimeoutError.NoConnectionError")) {
String dd = "";
// Обработка ошибки
} else if ("com.android.volley.AuthFailureError".equals(error.toString()) ||
error.toString().contains("No authentication") || error.toString().contains("Received authentication challenge is null")) {
// not autorithation 401
Preferences.get().eraseCookie();
Preferences.get().eraseTocken();
Preferences.get().eraseOther();
Preferences.get().eraseRegistration();
Intent intent = new Intent(context, Start.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
finish();
} else {
getNew();
}
}
}) {
@Override
protected Response parseNetworkResponse(NetworkResponse response) {
int code = response.statusCode;
if (code == 200) {
String str = new String(response.data);
if (!"[]".equals(str))
try {
DatabaseHelper.putToDb(getApplicationContext(), str);
} catch (JsonSyntaxException e) {
Connection.getInstance(getApplicationContext()).cancelPendingRequests(MainActivity.class.getName());
Preferences.get().eraseCookie();
Preferences.get().eraseTocken();
Preferences.get().eraseOther();
Preferences.get().eraseRegistration();
Intent intent = new Intent(context, Start.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
Preferences.get().eraseCookie();
finish();
}
long tsLong = System.currentTimeMillis() / 1000;
Preferences.get().putLong(Preferences.LAST_REQUEST, tsLong);
runOnUiThread(new Runnable() {
@Override
public void run() {
getSupportLoaderManager().getLoader(LoadType.MAINACTIVITY).forceLoad();
TimeTableFragment.refreshAdapter();
}
});
}
Preferences.get().checkSessionCookie(response.headers);
Preferences.get().saveIMS(response.headers);
return Response.success(response, null);
}
@Override
protected void deliverResponse(Object response) {
}
@Override
public int compareTo(Object o) {
return 0;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = super.getHeaders();
if (headers == null
|| headers.equals(Collections.emptyMap())) {
headers = new HashMap<String, String>();
}
Preferences.get().addSessionCookie(headers);
String curr_time_str = Preferences.get().getString(Preferences.IF_MODIFIED_SINCE);
//if (!TextUtils.isEmpty(curr_time_str))
headers.put("If-Modified-Since", "Tue, 10 Dec 2015 10:10:23 GMT"); //"Tue, 11 Dec 2012 10:10:23 GMT"
return headers;
}
};
request.setShouldCache(false);
Connection.getInstance(getApplicationContext()).addToRequestQueue(request, MainActivity.class.getName());
if (mRequestQueue == null) {
mRequestQueue = new RequestQueue(new NoCache(), new BasicNetwork(new HurlStack())); //, httpStack
mRequestQueue.start();
}