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

如何从空手道呼叫中获取响应HTTP状态?获取响应状态为204,但karate.log(result.response)为空

习淇
2023-03-14

我正在通过空手道API调用Web服务。当服务被执行时,我将获得预期的HTTP状态204。然而,当我记录响应时,我得到了空白。

下面是我的webservice调用、响应和日志输出

    result = karate.call('ExecuteWebService.feature', [urlToExecute]);
    karate.log("Response is " + result.response); #Expecting that code displays HTTP status here

我知道我得到了正确的回应,因为我的日志显示以下内容

    HH.mm.ss.mil [main] DEBUG com.intuit.karate - 
    1 < 204
    1 < Date: Fri, Rest of date portion
    1 < X-Application-Context: App Context Data

但是karate.log不显示状态代码。我需要状态代码,这样我就可以根据我的期望值断言状态,从而通过/失败测试

    HH.mm.ss.mil [main] DEBUG com.intuit.karate - response time in milliseconds: 431
    HH.mm.ss.mil [main] INFO com.intuit.karate - [print] 
    HH.mm.ss.mil [main] INFO com.intuit.karate - Response is  

你能建议如何从karate.call结果中提取HTTP状态,以便我可以断言响应吗?

共有2个答案

毛弘博
2023-03-14

204响应代码是指:

服务器已成功完成请求,并且响应有效负载正文中没有要发送的其他内容

所以,响应正文中没有任何内容是正常的。
在您的情况下,我只验证状态代码是否正确(根据应用程序规范)。

陆文康
2023-03-14

这应该行得通,

* def status = result.responseStatus

同样,您还可以访问响应响应时间响应负责人响应书

 类似资料:
  • 如何从的结果中获取HTTP状态?

  • 问题内容: 调用JAX-WS端点时,如何获取HTTP响应代码? 在下面的示例代码中,在调用Web服务时可能会引发Exception,例如或。 在这种情况下,如何从HTTP响应中获取HTTP状态代码? 问题答案: 完成@Praveen答案后,您必须将变成原始值,然后从上下文中获取值。 如果您在托管的Web服务客户端中发生异常,请不要忘记将事务标记为回滚。

  • 我希望检索HTTP响应状态代码(例如,400、401、403、503等),以防请求失败(理想情况下也是成功)。在这段代码中,我使用HTTP Basic执行用户身份验证,并希望能够在用户错误键入密码时向用户发送身份验证失败的消息。 不幸的是,产生的错误似乎并不表示实际收到了HTTP状态代码409: 此外,在发生错误时检索HTTP正文会很好,因为我的服务器端将在那里放置错误的文本描述。 问题 是否可以

  • 我正在使用apache的HttpClient(通过Fluent API)。当我获得响应对象时,我首先执行以下操作: 如果状态代码为4xx或5xx,我将抛出异常,或者返回内容: 这里是类型为的对象。但当我运行此程序时,我得到: 我怎样才能避开这件事?

  • 我有一个Restendpoint,如果没有产品,它将返回204,以及以下通用角度服务: 和 但是,当服务生成 204 代码时,我收到以下错误: TypeError:无法读取null的属性“status” 这怎么可能发生?如果 API 以 204 响应,为什么整个响应为空?

  • 根据节点获取文档节点获取 我们可以这样得到响应状态 为了得到数据 我有一个场景,需要从响应返回JSON数据和状态。我试着这样用 但是 安慰日志(jsonData.status) 不会返回状态。如何获取状态和输出数据