Karate 无法根据需要转义url

Karate 无法根据需要转义url,karate,Karate,我试图在路径中转义一些值 假设我正在尝试获取https://www.google.com/https%3A%2F%2Fdomain 我尝试了以下选项: Scenario: escape value * url "https://www.google.com" * path "https://domain" When method get * path "https\:\/\/domain" When method get * path "https

我试图在路径中转义一些值

假设我正在尝试获取
https://www.google.com/https%3A%2F%2Fdomain

我尝试了以下选项:

Scenario: escape value
    * url "https://www.google.com"
    * path "https://domain"
    When method get
    * path "https\:\/\/domain"
    When method get
    * path "https%3A%2F%2Fdomain"
    When method get
    * path "https\\:\\/\\/domain"
    When method get
但我得到

  • https://www.google.com/https://domain
  • https://www.google.com/https://domain
  • https://www.google.com/https%253A%252F%252Fdomain

  • 为什么
    \
    不工作,而
    %2F
    被转义到
    %252F

    编码是正确的行为:

    但是,您对这个非常规URL的解决方法是使用空手道,将其作为
    URL
    本身的一部分:

    Given url 'https://httpbin.org/https%3A%2F%2Fdomain'
    When method get
    Then status 200
    

    但问题是,当试图编码/(%2F)时,空手道将%编码到%25。如果没有/的自动编码,为什么%有一个?您使用url而不是路径的解决方法是可行的,但它会使事情变得有点复杂。@Adrien不,它不会使事情复杂化。如果需要,可以使用变量的字符串连接来构建url。路径中应该有/。我知道路径中应该有/,但我不明白为什么%没有,因为它存在于url的编码部分中,而且在我看来,对它进行编码并不是出于本能。@Adrien好的,我也不知道;)我们只是在后面使用ApacheHTTP客户端。也许你可以提交一个请求?如果我能做到这一点,我肯定会为项目做出贡献:)