Как получить метод удаления с телом json в клиенте Джерси - PullRequest
0 голосов
/ 30 апреля 2020

Я пишу тестовую программу для проверки клиента на джерси на наличие тела json. Я получаю ответ от почтальона и пытаюсь вызвать его от клиента java, но получаю сообщение об ошибке:

java.lang.IllegalStateException: Entity must be null for http method DELETE.

Как запросить удаление конечной точки с телом json в Джерси.

Я попробовал следующий клиент:

import javax.ws.rs.client.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;


public class First {
    public static void main(String[] args) {
        String str = "{\n" +
                "\t\"ecid\": \"1\",\n" +
                "\t\"customerModelKey\": \"195000300\",\n" +
                "\t\"customerModelName\": \"A\",\n" +
                "\t\"customerGroupCode\": \"BI\"\n" +
                "}";
        System.out.println("test");
        Client client = ClientBuilder.newClient();
        WebTarget webTarget
                = client.target("http://localhost:9092/");
        WebTarget employeeWebTarget
                = webTarget.path("deletemodelecidrel");
        Invocation.Builder invocationBuilder
                = employeeWebTarget.request(MediaType.APPLICATION_JSON);
       Invocation invocation
                = invocationBuilder.build("DELETE",Entity.text(str));

       Response response = invocation.invoke();
        System.out.println(response);
    }
}

1 Ответ

0 голосов
/ 30 апреля 2020

Джерси предотвращает отправку данных с помощью запроса DELETE.

Если вам действительно нужно это сделать, вы можете настроить клиент следующим образом:

ClientConfig clientConfig = new ClientConfig();
clientConfig.property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION, true);
Client client = ClientBuilder.newClient(clientConfig);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...