У меня есть несколько модульных тестов, которые используют квадраты OkHttp
s MockWebServer
. Тесты проходят отлично, и все работает очень хорошо. Единственное, что я не мог сделать до сих пор, это проверить содержимое запросов POST.Как проверить содержимое тела POST с помощью MockWebServer?
Почему я хочу это сделать?
REST Api, с которым я развиваюсь, имеет некоторые методы, которые требуют, чтобы объекты данных отправлялись в тело запроса POST, другие методы требуют, чтобы объекты отправлялись как поле данных FormUrlEncoded
. Поэтому я хочу убедиться, что интерфейс Retrofit
был настроен правильно. к спецификации.
тест следующий блок будет проходить, но первый один отправляет данные неправильно внутри тела:
//Incorrect
@POST("api/v1/user/senddata")
Observable<Void> senddata (
@Path("VIN") String vin,
@Body PoiWrapper wrappedPoi);
//Correct
@FormUrlEncoded
@POST("api/v1/user/senddata")
Observable<Void> senddata(
@Path("VIN") String vin,
@Field("data") PoiWrapper wrappedPoi);
Я знаю, что MockWebServer
имеет метод takeRequest()
, но я застрял с получением фактического поля и данные из этого запрашивающего органа.
Благодарим за помощь!
Хорошо, что это не 100% решение моей проблемы, но он толкнул меня в правильном направлении. 'ReadUtf8()' возвращает тело с полями кодированной HTML-формы. Мне еще нужно декодировать String, десериализовать его на «Карта», а затем проверить ключи и значения. – ASP