Проблема с заменой Content-Type НЕ В ХЕДЕРЕ

Приветствую, экспертов и не очень :blush:
Возникла трудность. Нужно подменить Content-Type но не в самом хедере, а в теле

Запрос:

POST http://тра-ла-ла/getSecurityTicket  HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: multipart/form-data; boundary="----=_Part_93_997910442.1449507394694"
MIME-Version: 1.0
Content-Length: 365
Host: тру-лу-лу
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

------=_Part_93_997910442.1449507394694
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: form-data; name="securityToken"
{"username":"хацкер","password":"кулХацкер","created":"2015-12-07"}
------=_Part_93_997910442.1449507394694--

`
Так вот, нужно как-то заменить ЗДЕСЬ

Content-Type: text/plain; charset=UTF-8

а именно text/plain на application/json

Уточняю: вопрос в рамках SoapUi

А можно, пожалуйста, ссылку на почитать что такое Content-Type в body? Я без подколок, просто я не знал о таком. И еще: что значит ------=_Part_93_997910442.1449507394694

А что вы конкретно делаете? Это тест или вы что-то эмулируете?

P.S.: По идее ваш Content-Type - plain text, так что реплейс вам в помощь )

Да,вот нужно запрос послать такой интересный но валидация не пропускает контент тайп который генерирует соапЮі. Вот с реплейсом это идея. Можно по подробней? :sunny:

Ну хедер у вас в любом случае формируется самим soapui, а боди вы заполняете сами. Так что я все равно не понимаю вашей проблемы ) Напишите подробнее что вы делаете. К тому же тут простой POST запрос. Зачем именно SoapUI? Есть же curl, плагины для браузеров и другие утилиты. В конце концов можно взять тот же python + requests библиотеку, там все это очен просто решается.

ну вот дело в том что,уже полюбили соапЮи и архитектура проекта делается так что менеджер кликает одну кнопку и получает результат. Проблема была в том, что я заранее в вкладке реквест добавлял поля параметры а их значения уже генерировал. Но фишка в том, что если поле добавил - в результате запрос формируется автоматически со статичными свойствами полей .Я сейчас пробую полностью создавать запрос руками а не интрефейсом. Пользююсь версией ПРО

Ну тут ПРО не ПРО разницы не имеет особой. На сколько я понял вам просто нужно изменить подход к написанию тестов )
P.S.: По поводу нажать кнопочку и получить результат. Можно все грамотно обернуть каким нибудь CI, например Jenkins, а в нем уже по нажатию кнопочки или просто по билду можно настроить запуск чего угодно с последующим выводом результатов в браузер или вообще с уведомлением менеджера по почте :smile: Советую присмотреться к такому подходу. Упростите себе жизнь и блеснете перед менеджером :wink:

Это не plain text, это multi-part content. Погуглил, на стэке пишут что соап уи поддерживает только multipart/form-data, но может быть уже что-то изменилось.

Вот тут ничего не смотрели еще?

http://www.soapui.org/soap-and-wsdl/headers-and-attachments.html

Я хоть и не ТС, но читал вот это уже SOAP Attachments and Files | SoapUI , но как-то там не особо информации.

1 лайк

Интересно. Да, я с REST’ами не очень взаимодействую. Только мельком на примерах смотрел. А если не в заголовке и не в аттаче шлется этот параметр, то может в Media Type?

Я менял в Attachments тип Content-Type и в Header’е, но из приведенного выше примера не очень понял почему шлется так в разнобой и зачем нужно так слать. Может и правда проще отказаться от SoapUI, если он архитектурно не позволяет добиться нужного поведения. :sunglasses:

P.S. у SmartBear есть еще какие-то два продукта: SoapNG и ReadAPI, не смотрел их, может там что-то есть из неоходимого? Вообще с трудом понимаю, что они дают.

Эти данные находятся в теле POST запроса. Прочитайте хотя бы в вики - multipart/form-data — Википедия.

1 лайк

Смотрел мельком ее. Но меня больше интересовало как оно формируется в SoapUI.

Думул, что вот тут что-то подобное делали:
soupUI – How to Post JSON to a REST Service
А в Header можно явно добавить переменную с другим Content-Type, но как оно будет работать - не проверял.

Не будет :slight_smile: