Android Volley HTTPS header 抛出 400

标签 android android-volley

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

此外,在 iOS 和我在 POSTMAN 中的检查中, header 都运行良好,所以我认为问题一定出在客户端。

我正在发送我的标题覆盖 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;
}

最佳答案

好的,对于遇到此问题的任何人,这里有一个解释。

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

我试图缩小它的范围,发现它只在使用 Body 的 POST 请求上给我 400 错误。 显然在更改为 HTTPS 截击后发送空体。 我不明白为什么。

最后我发现了我的问题。 在标题中,我需要添加“charset=utf-8” 是的,在上面的代码中我确实有字符集, 但我写了“utf8”,显然在 HTTPS 中它需要“utf-8”!! 那个小小的“-”让一切变得不同!

同样,我的应用程序在没有那个“-”的情况下工作了 3 个月,没有任何问题,由于某种原因在更改为 HTTPS 后,utf8 需要更改为“utf-8”!

希望对某人有所帮助。

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

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

乔泽里

关于Android Volley HTTPS header 抛出 400,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29486406/

相关文章:

php - Android volley 通过图片上传发送信息两次

android - 使用数组从数据库中设置表内的值

android - Android 上使用 Volley 网络库的 SSL Pinning

java - Android:如何验证我的 Google 帐户以及如何获取我的 GMail 任务?

android - 在复选框事件上重绘 expandableListView

java - Retrofit/Gson 将空模型放入 List<>

Android无法升级CMake版本

java - Volley - 无法解析构造函数“JSONObjectRequest

java - 依次执行异步任务

android - 如何在 Firebase (Android) 中添加和查看子对象?