Каратэ: значения параметров запроса кодируются - PullRequest
0 голосов
/ 04 декабря 2018

Я использую версию карате 0.6.1 и сталкиваюсь с проблемой get запроса с queryparam.

Scenario Outline: Verify the response Data with account details when there are filter values are provided with wildcard

 Given params { <paramName>: <paramValue> }
 When method get
 Then status 200
 Examples:
   | paramName | paramValue |                                                                                                                                                                                                                                                 
   | Name       |  'Volvo%' |
   | Name       |  'test data'|

в URL запроса с queryparam становится как url?Name=Volvo%25 И url?Name=test+data

что не правильно, как мне это решить.

1 Ответ

0 голосов
/ 05 декабря 2018

Это на самом деле не так,

Кодировка URL необходима для того, чтобы различать специальные символы в ваших данных и специальные символы, зарезервированные для построения URL.

URL зарезервированных символовКодировка:

:   Separate protocol (http) from address encoded as %3B
/   Separate domain and directories encoded as %2F
#   Separate anchors encoded as %23
?   Separate query string encoded as %3F
&   Separate query elements encoded as %24
@   Separate username and password from domain encoded as %40
%   Indicates an encoded character encoded as %25
+   Indicates a space encoded as %2B
<space> Not recommended in URLs encoded as %20 or +

, поэтому, если вы собираетесь передавать какие-либо специальные символы в виде данных через URL, вам нужно % encode их, чтобы избежать конфликтов.

В каратэ, если вы хотите избежать кодирования URL-адреса, не создавайте URL-адрес, используя определения path, params, param .

Вместо этого создайте весь URL-адрес в виде строки ипередайте его url.например,

* url 'http://httpbin.org/get?Name=Stark'

Вы можете получить исключение, если попытаетесь передать какие-либо специальные символы в этом.

, поэтому рассмотрите возможность кодирования URL, если вы собираетесьпередать любые специальные символы.

...