【问题标题】:HTTP requests from Postman to JBoss从 Postman 到 JBoss 的 HTTP 请求
【发布时间】:2016-07-05 06:21:48
【问题描述】:

在以前版本的 Google Chrome 的 Postman 插件中,我曾经发出 HTTP 请求,但曾经使用 URL 编码选项对具有特殊字符的查询字符串值进行 URL 编码。

在当前版本的 Postman 中,该选项已被删除,并且由于 JBoss 不允许 URL 解码请求,因此现在使用 Postman 非常令人作呕。

因此,在我看来,我有两个选择:

  1. 找到一种使用 Postman 中的测试脚本对整个查询字符串进行 URL 编码的方法
  2. 想办法让 JBoss 接受 URL 解码的请求

你有什么建议,你是怎么做的?

谢谢!

【问题讨论】:

  • Here 他们说您可以通过右键单击-> EncodeURIComponent 来完成。您是指新版本中缺少的吗?
  • 没错,从 4.1.2 开始就缺少该选项。尽管如此,我更喜欢使用选项 2 的解决方案
  • 您使用的是哪个版本的 JBoss?

标签: javascript java http jboss postman


【解决方案1】:

从 Wildfly 8 开始,底层 HTTP 实现是 Undertow,包括 HTTP2 支持。有一个 decode-url 配置参数,当设置为 false 时将允许解码请求参数。更多信息here

【讨论】:

    【解决方案2】:

    这是一个 Postman 错误,他们正在解决这个问题

    https://github.com/postmanlabs/postman-app-support/issues/1893

    还想提一下,URI 应该始终是 URI 编码,否则不是有效的 URI。

    但是,您可以配置 JBoss 如何 来去除 URI 编码的 URI。如果这是你想做的check out the URIEncoding and useBodyEncodingForURI attributes in jbossweb docs

    【讨论】:

      【解决方案3】:

      您不应使用选项 2,因为允许解码的特殊字符(易受跨站点脚本、csrf 攻击)会不太安全

      最好的方法是使用http://www.freeformatter.com/html-escape.html 之类的在线工具对您的网址进行编码,然后再将其发送到服务器。或者,您可以使用 Apache API (escapeHTML()) 创建一个简单的 java 工具来执行此操作

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-25
        • 2019-11-25
        相关资源
        最近更新 更多