Android Volley HTTPS Headers抛出400

时间:2015-04-07 07:45:21

标签: android android-volley

我的应用程序已经运行了一段时间,所有工作都非常好! 服务器最近从http更新为https, 自从那次改变以来,我在每次服务器调用时都会得到Error 400 BAD INPUT。 在研究了这个问题几个小时后,我发现如果我发送一个带有空头的请求请求通过!没有错误。 但我需要那些标题!

此外,在iOS和我在POSTMAN中的检查中,标题都很顺利,所以问题必须在我认为的客户端。

我发送标题覆盖getHeaders方法。

以前有人遇到过这个问题吗? 知道如何解决这个问题吗?

我的标题代码:

@Override
public Map<String, String> getHeaders() throws AuthFailureError {
    HashMap<String, String> headers = new HashMap<String, String>();
    headers.put("Content-Type", "application/json; charset=utf8");
    headers.put("AppVersion", BaseApplication.getCurrentDevice().getAppVersion());
    headers.put("DeviceType", BaseApplication.getCurrentDevice().getDeviceType().toString());
    return headers;
}

1 个答案:

答案 0 :(得分:2)

好的,对于有这个问题的人来说,这是一个解释。

我进一步调查了我的问题,发现我最后的问题不是标题!

我试图将其缩小范围,发现只有在使用Body的POST请求时才会出现400错误。 显然在改为HTTPS凌空后发送空体。 而且我不明白为什么。

最后我发现了我的问题。 在标题中,我需要添加“charset = utf-8” 是的,在上面的代码我有charset, 但我写了“utf8”,显然在HTTPS中它需要“utf-8”!! 那个小小的“ - ”完全不同了!

再次,我的应用程序没有“ - ”工作3个月已经没有问题,由于某种原因,在更改为HTTPS后,utf8需要更改为“utf-8”!

希望能帮助别人。

您可以在此链接中找到有关此问题的更多详细信息:

http://envyandroid.com/android-volley-empty-parameters/

JozeRi