Volley 自定义 headers 即使已设置也无法正常工作
Volley custom headers not working even when set
我在我的应用程序中设置了 Volley,但我一直试图在每个请求中发送请求 headers (cookie)。我创建了一个自定义请求并覆盖了 getHeaders,如下所示:
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<>();
String sessionRequest = "source=Android-" + AppUtils.getDeviceUUID(visnetawrap);
if (visnetawrap.visnetaUser != null) {
if (visnetawrap.visnetaUser.getUserIdString() != null) {
//headers.put("UserSession", "id=" + visnetawrap.visnetaUser.getUserIdString());
sessionRequest += ",id=" + visnetawrap.visnetaUser.getUserIdString();
}
if (visnetawrap.visnetaUser.userToken != null) {
//headers.put("UserSession", "token=" + visnetawrap.visnetaUser.userToken);
sessionRequest += ",token=" + visnetawrap.visnetaUser.userToken;
}
}
//headers.put("UserSession", "source=Android-" + AppUtils.getDeviceUUID(visnetawrap));
headers.put("UserSession", sessionRequest);
Log.d("RequestHeaders", headers.toString());
return headers;
}
但是,当我创建请求时,我从服务器收到一条错误消息,提示它们未设置。这不是服务器端问题,因为它曾经用于改造。关于为什么会这样有什么建议吗?
正如我所说,对于超时问题,您应该检查网络连接或setRetryPolicy,如下代码:
request.setRetryPolicy(new DefaultRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 5, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
我在我的应用程序中设置了 Volley,但我一直试图在每个请求中发送请求 headers (cookie)。我创建了一个自定义请求并覆盖了 getHeaders,如下所示:
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<>();
String sessionRequest = "source=Android-" + AppUtils.getDeviceUUID(visnetawrap);
if (visnetawrap.visnetaUser != null) {
if (visnetawrap.visnetaUser.getUserIdString() != null) {
//headers.put("UserSession", "id=" + visnetawrap.visnetaUser.getUserIdString());
sessionRequest += ",id=" + visnetawrap.visnetaUser.getUserIdString();
}
if (visnetawrap.visnetaUser.userToken != null) {
//headers.put("UserSession", "token=" + visnetawrap.visnetaUser.userToken);
sessionRequest += ",token=" + visnetawrap.visnetaUser.userToken;
}
}
//headers.put("UserSession", "source=Android-" + AppUtils.getDeviceUUID(visnetawrap));
headers.put("UserSession", sessionRequest);
Log.d("RequestHeaders", headers.toString());
return headers;
}
但是,当我创建请求时,我从服务器收到一条错误消息,提示它们未设置。这不是服务器端问题,因为它曾经用于改造。关于为什么会这样有什么建议吗?
正如我所说,对于超时问题,您应该检查网络连接或setRetryPolicy,如下代码:
request.setRetryPolicy(new DefaultRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 5, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));