Как выполнить POST

Используя curl у меня есть:

$ curl -v -d "userName=user1&password=passwd1&language=en" http://myhost:23094/api/v2/authToken
...
> POST /api/v2/authToken HTTP/1.1
> User-Agent: curl/7.30.0
> Host: myhost:23094
> Accept: */*
> Content-Length: 39
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 39 out of 39 bytes
< HTTP/1.1 200 OK

Я пытаюсь создать скрипт танка Яндекса, используя этот запрос:

Мой load.ini:

[phantom]
address=my.ip.v4.here
port=8094
rps_schedule=line(1, 10, 1m)
ammo_type=uripost

Мой ammo.txt

133 login
POST /api/v2/authToken HTTP/1.1
User-Agent: tank
Host: somemyhost.com
Content-Length: 39

userName=user1&password=passwd1&language=en

Когда я бегу yandex-tank ammo.txt, Я получаю ошибку 400 Bad Request. Мне кажется, что танк не может использовать параметры тела. Как заставить их использовать их? Что я делаю не так?

1 ответ

Решение

Твоих патронов нет в uripost формат. Не указывайте ammo_type вообще, и он должен работать правильно. Если вы хотите использовать uripost формат, укажите ваши заголовки в load.ini и напишите что-то вроде следующего в вашем файле патронов:

39 /api/v2/authToken login

userName=user1&password=passwd1&language=en

Вот описание uripost формат.

Другие вопросы по тегам