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

场景:第一次响应成功,但第二次相同的请求返回404错误代码

施宏大
2023-03-14

我需要什么时候做第一个请求,然后得到存根响应代码= 401。

当执行第二个 SAME 请求时,则获取存根响应代码 = 200。

为此,我使用场景。

这是我在一个文件中的WireMock映射:

{
  "scenarioName": "Request transfer, 401",
  "requiredScenarioState": "Started",
  "newScenarioState": "Triggered Once",
  "request": {
    "method": "POST",
    "urlPattern": "/api/T2A"
  },
  "response": {
    "headers": {
      "Content-Type": "application/json"
    },
    "status": 401
  }
}

{
  "scenarioName": "Request transfer, 200",
  "requiredScenarioState": "Triggered Once",
  "newScenarioState": "Started",
  "request": {
    "method": "POST",
    "urlPattern": "/api/T2A"
  },
  "response": {
    "headers": {
      "Content-Type": "application/json"
    },
    "status": 200,
    "bodyFileName": "VB/back/request_transfer.json"
  }
}

第一次请求时,我得到存根响应= 401。

好。但是当做第二个相同的请求 WireMock 返回错误代码 = 404。

                                               Request was not matched
                                               =======================

-----------------------------------------------------------------------------------------------------------------------
| Closest stub                                             | Request                                                  |
-----------------------------------------------------------------------------------------------------------------------
                                                           |
POST                                                       | POST
/api/T2A                                                   | /api/T2A
                                                           |
                                                           |
-----------------------------------------------------------------------------------------------------------------------

2021-03-02 22:44:34.802 Request received:
127.0.0.1 - POST /api/T2A

{"MTS":"2be192ca-dabe-47b9-b","IDNP":"1"}


Matched response definition:
(no response definition configured)

Response:
HTTP/1.1 404
(no headers)


2021-03-02 22:44:34.805 Received request to /not-matched with body 

为什么第二个 SAME 请求不返回存根响应状态 = 200?

共有1个答案

禄仲渊
2023-03-14

您的场景必须具有相同的名称。这就是WireMock识别映射属于该场景的方式。

您得到的是 404,因为没有针对方案请求传输的映射,401 和方案状态触发一次

将两个映射的场景名称更改为请求传输将解决您的问题。

 类似资料:
  • 下面是我的wiremock存根映射: 因此,当客户端使用url模式=/api/myApp执行http请求时,WireMock返回成功http状态=200。 美好的很好。 但我需要当客户端使用相同的url模式执行第二个请求时,WireMock必须返回这个存根响应: 所以: 第一个要求- 第二个同样的请求- 可以用WireMock吗?

  • 我正在开发一个android应用程序,它使用AsyncTasks从应用程序API获取JSON数据。当我启动我的应用程序时,一切都很顺利,应用程序从API中获取了正确的信息。 编辑:这是我获取数据的方式。 BufferedReader读取器=空;尝试{reader=new BufferedReader(new InputStreamReader(url.OpenStream(),“UTF-8”));

  • 问题内容: 我通过jQuery AJAX将一些数据发布到PHP脚本中,并且一切正常执行,但是返回了404错误。在我的Firebug控制台中,PHP脚本的响应是正确的。我不了解该脚本如何响应,它仍然会引发404错误。jQuery的“错误”回调方法将触发,而“成功”方法则不会触发。 PHP脚本执行的所有语句都能正常工作,因为我可以看到数据库正在更新等。 我在Dreamhost托管的WordPress

  • 问题内容: 储存程序 在此存储过程中,我有两个update语句。如果第一次更新成功执行,然后第二次执行。需要进行哪些更改? 问题答案: 在第一个之后,您可以检查受影响的行数。 如果返回的结果是所需的更新数量(可能> 0),则仅触发第二个。 可以通过检查受影响的行数来包围第二个。

  • 之前stackoverflow的这类帖子(没有得到回复)是google给我的唯一相关搜索结果。 非常感谢任何对问题有洞察力的人。

  • 这是我的控制器,它将请求映射到以下url