【问题标题】:400 bad request after URL encodingURL编码后的400错误请求
【发布时间】:2018-05-31 13:32:21
【问题描述】:

我在我的 java 代码中使用 REST Web 服务。在调用 Rest web 服务之前,我通过 java.net.URLEncoder

对查询参数进行编码

但是由于 400 错误请求异常,请求失败

编码前的网址:host?limit=200&filter=published ge "2017-12-15T16:50:34.034Z" and (action.objectType eq "core.user_group_member.user_add" or action.objectType eq "core.user_group_member.user_remove")

解码后的网址:%3Flimit%3D200%26filter%3Dpublished%20ge%20%222017-12-15T16%3A50%3A34.034Z%22%20and%20%28action.objectType%20eq%20%22core.user_group_member.user_add%22%20or%20action.objectType%20eq%20%22core.user_group_member.user_remove%22%29

我在邮递员休息客户端工具中进行了同样的尝试,也没有编码的 url 正在工作,编码的 url 失败并出现 400 错误请求错误。

【问题讨论】:

  • 您需要对值进行 URL 编码,而不是整个 URL。
  • 是的,我只编码了来自 ?字符
  • 是的,我说的是值,而不是整个查询字符串。
  • 在 Postman 中,您使用什么格式的正文? (表单数据、x-www-form-urlencoded、原始或二进制)

标签: java rest postman


【解决方案1】:

"limit=200&filter=" 不需要编码。

【讨论】:

    【解决方案2】:

    postman中需要手动编码相关参数的如下:

    在选中的一段文字上单击鼠标右键,选择“EncodeURIComponent”对参数值进行手动编码。

    【讨论】:

    • 编码前的同样问题我在编码 400 错误请求后得到了正确的响应
    • 您是否删除了之前的编码?
    猜你喜欢
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多