Тест api каратэ конвертирует @ в% 40 во время звонка - PullRequest
1 голос
/ 07 апреля 2020

Я написал тест API с использованием фреймворка каратэ. При выполнении пост-звонка он преобразует значение поля электронной почты из TEST@ABC.COM в TEST% 40AB C .COM.

Вот несколько строк из журнала

1 > Content-Type: application/x-www-form-urlencoded; charset=UTF-8
1 > User-Agent: Apache-HttpClient/4.5.5 (Java/1.8.0_221)
email=TEST%40ABC.COM&checkDigit=&brandName=

1 Ответ

1 голос
/ 07 апреля 2020

Это правильно в соответствии с HTTP spe c: { ссылка }

Вы можете сами убедиться, попробуйте это:

* url 'http://httpbin.org'
* path 'anything'
* form field username = 'john@smith.com'
* form field password = 'secret'
* method post

Результат:

1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 41
1 > Content-Type: application/x-www-form-urlencoded; charset=UTF-8
1 > Host: httpbin.org
1 > User-Agent: Apache-HttpClient/4.5.12 (Java/1.8.0_231)
username=john%40smith.com&password=secret

Но когда вы видите ответ, вы видите, что сервер обработал его правильно, посмотрите на form в JSON:

1 < 200
1 < Access-Control-Allow-Credentials: true
1 < Access-Control-Allow-Origin: *
1 < Connection: keep-alive
1 < Content-Length: 555
1 < Content-Type: application/json
1 < Date: Tue, 07 Apr 2020 13:11:58 GMT
1 < Server: gunicorn/19.9.0
{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {
    "password": "secret", 
    "username": "john@smith.com"
  }, 
  "headers": {
    "Accept-Encoding": "gzip,deflate", 
    "Content-Length": "41", 
    "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", 
    "Host": "httpbin.org", 
    "User-Agent": "Apache-HttpClient/4.5.12 (Java/1.8.0_231)", 
    "X-Amzn-Trace-Id": "Root=1-5e8c7c1e-affe121cae9f4b20399b0884"
  }, 
  "json": null, 
  "method": "POST", 
  "origin": "49.206.10.30", 
  "url": "http://httpbin.org/anything"
}
...