【问题标题】:Android Volley HTTPS Headers throws 400Android Volley HTTPS 标头抛出 400
【发布时间】:2018-08-08 11:11:24
【问题描述】:

我的应用程序现在已经运行了一段时间,并且一切运行良好! 服务器最近从http更新到https, 自从那次更改以来,我在每次服务器调用时都会收到错误 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;
}

【问题讨论】:

  • 只添加application/json
  • 已经尝试过了,仍然收到 400 错误。 =\
  • 尝试在Firefox或chrome中添加Rest Client Extension并尝试

标签: android android-volley


【解决方案1】:

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

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

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

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

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

希望对某人有所帮助。

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

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

JozeRi

【讨论】:

    猜你喜欢
    • 2020-05-29
    • 2015-01-03
    • 2018-05-13
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多