Karate 在空手道DSL中,有没有办法让重定向执行POST请求而不是GET请求?

Karate 在空手道DSL中,有没有办法让重定向执行POST请求而不是GET请求?,karate,http-status-code-302,Karate,Http Status Code 302,我有以下空手道脚本,默认情况下已打开重定向 Scenario: First Test Given path 'somePath' And request '' And header Content-Type = 'text/html' And param _csrf = csrf And param username = 'username' And param password = 'password' When method pos

我有以下空手道脚本,默认情况下已打开重定向

  Scenario: First Test
    Given path 'somePath'
    And request ''
    And header Content-Type = 'text/html'
    And param _csrf = csrf
    And param username = 'username'
    And param password = 'password'
    When method post
    Then status 200
问题是从API获取302后,下一个请求会自动提交GET请求。我希望它能提交一个POST请求

在cURL中,存在一个允许用户这样做的现有参数。见下文

--post302在跟随302后不切换到GET


空手道DSL中有这样做的方法吗?

是的,请阅读文档。还有一个示例介绍如何读取
位置
响应头以手动发出所需的请求

Scenario: get redirects can be disabled
* configure followRedirects = false
Given path 'redirect'
When method get
Then status 302
And match header Location == demoBaseUrl + '/search'
* def location = responseHeaders['Location'][0]
Given url location

我本应该就最初的问题提供更多的细节,但我并没有试图手动重定向请求。我只是希望每个重定向的请求都自动重试,使用POST请求而不是GET请求。这可能吗?我希望避免关闭followRedirects,因为我使用的服务可能会多次发生重定向。我返回并接受了前面问题的答案。不过,我仍然坚持这一点。有没有想过当重定向打开时如何自动发布?@Lincoln88我真的不知道apache客户端为什么不使用POST进行重定向。这里有更多的上下文:-只需手动执行第二个请求,您可以稍后切换回跟踪重定向。否则请提交拉取请求;)谢谢你的意见。由于我正在使用的服务可能会发生多个重定向,因此如果我手动重定向,它可能会成为一个很长的难看的脚本。我在这里创建了请求。为了其他遇到此问题的人的利益-如果在流中的多个调用中需要此模式(非常罕见),您可以轻松编写一个可重用的功能文件,以从以前的请求中提取
位置
,使用您选择的方法重新播放请求正文,必要时重新设置
followRedirects
标志。