Как мы можем передать объект Java в вызов POST groovyx.net.http.RestClient - PullRequest
0 голосов
/ 12 октября 2018

Я написал Restfull веб-сервис POST вызов API, этот API принимает java object в качестве параметра запроса

Пример кода:

@POST
@Path("/sample")
@ApiOperation(value = "insert sample data",
        notes = "insert sample data", response = SampleRequest.class)
public Response processSampleData(@ApiParam(value = "SampleRequest", required = true) SampleRequest sampleRequest) {
   //code to insert data
}

Я пишу интеграциюметод испытания, но не в состоянии передать java object RestClient

Пример метода испытания:

def "process sample data"(){
    when:
    /*String json = '{"sampleDataList":[{ "name": "test1", "id": "12345" },{ "name": "test2", "id": "123456"}]}'*/
    Sample sample= new Sample();
    sample.setName("test1");
    sample.setId("12345");
    SampleRequest reqObj = new SampleRequest();
    reqObj.getSampleList().add(sample);

    //tried with json
    /*HttpResponseDecorator response = getRestClient().post([path: "$BASE_URL"+"/sample", body: json])*/

    //tried with java object also
    HttpResponseDecorator response = getRestClient().post([path: "$BASE_URL"+"/sample", body: SampleRequest])

    then:
    response
}

Я пытался использовать оба json и java object, но ни один из нихработал на меня.Получение No encoder found for request content type */* ошибка

1 Ответ

0 голосов
/ 12 октября 2018

Когда я добавил contentType: "application/json, он работал на json тип телосложения.

Я изменил

HttpResponseDecorator response = getRestClient().post([path: "$BASE_URL"+"/sample",body: json])

На

HttpResponseDecorator response = getRestClient().post([path: "$BASE_URL"+"/sample",contentType: "application/json" ,body: json])
...