当前位置: 首页 > 知识库问答 >
问题:

如何在Wiremock请求正文中编码特殊字符?

南宫博简
2023-03-14

我使用Wiremock服务器模拟响应,并使用JSON格式模拟响应。

{
  "request":
  {
    "url": "/token",
    "method": "POST",
    "bodyPatterns" : [{
      "contains": "username=test_user@gmail.com&password=passwordtest_security_token"
    }]
  },
  "response":
  {
    "status": 200,
    "headers":
    {
      "Content-Type" : "application/json"
    },
    "jsonBody": {"message": "ok"}
}

这不起作用,因为电子邮件中的“@”未编码。我需要传递“test_user@gmail”才能使请求正常工作。

这里只有一个地方有零钱。但对于其他模拟,请求正文有许多特殊字符**(@,%*\n\s)**。有没有办法在Wiremock中处理编码部分。

另外,有没有办法在url中编码字符串?

共有1个答案

微生翼
2023-03-14

在上面的例子中,有一个荣誉缺失,它阻止了在WireMock中加载。以下示例已完成:

{
    "request": {
        "url": "/token",
        "method": "POST",
        "bodyPatterns": [{
                "contains": "username=test_user@gmail.com&password=passwordtest_security_token"
            }
        ]
    },
    "response": {
        "status": 200,
        "headers": {
            "Content-Type": "application/json"
        },
        "jsonBody": {
            "message": "ok"
        }
    }
}

在您的问题中,您强调了您需要使用@而不是。我无法复制这种场景。因为我不确定你是通过表单还是原始字符串发布的。

如果使用常规“表单数据”选项,则会导致无法匹配。

但是把它作为一个原始体发送出去,结果是完全相反的。该示例的行为完全符合您的描述。下面是我的邮差成绩截图:

 类似资料:
  • 相关网站:http://nubix.ca/blog/we-have-a-drone-and-were-prepared-to-shot/

  • 问题内容: 我得到了一个像这样的字符串 我该如何编写Java代码来解码编码字符,例如 在字符串中。是否有任何现有的类/方法可以对其进行解码? 谢谢。 问题答案: 要取消转义HTML / XML实体,请使用Apache Commons Lang 或homegrow one 。

  • 我有一个 JSON 请求,如下所示: 作为响应,我需要在一个字段中发送完整的请求JSON对象。我的Wiremock存根JSON是, 如何在响应字段中发送请求正文? 我现在收到错误: 我使用的是导致此问题的wiremock版本。我将版本升级到

  • 问题内容: 我正在从Java中的Web servlet调用SAP SOAP服务。由于某种原因,每次我在请求的字段中使用特殊字符(例如“è”或“à”)时,SAP都会给我一个错误。SOAP Service的WSDL在UTF-8中定义,我已经相应地设置了字符编码,如下所示。但是我不确定这是正确的方法。另外,请注意,如果我使用SOAP UI(具有相同的信封),则请求可以正常工作,因此它一定是Java方面的

  • 我最近开始在我的android应用程序中使用改装,这是我添加用户的改装请求: 这里User是我想在服务器上注册的用户的模型类。问题是服务器需要Base64.encode()格式的json正文请求。有没有办法使用改装发送Base64编码数据? 我可以想到手动这样做: 然后在请求中传递这个。但是,我必须手动完成这项工作,并处理每个POST请求。有没有更干净的方法。

  • 出于测试的目的:当它解析数据时,我将一些数据输出到一个呈现完美的浏览器。。 然后我试着用php将它写到一个文件中,如下所示- 和 和