Пользовательский метод запроса http-клиента jersey

Со следующим кодом, используя jersey:

    com.sun.jersey.contribs
    jersey-apache-client4
    1.13-b01

У меня есть проблемы с использованием пользовательских методов запроса, таких как FOOBAR, PATCH, SEARCH и т. д. Те, которые не существуют в httpUrlConnection.

 DefaultClientConfig config = new DefaultClientConfig();
 config.getProperties().put(URLConnectionClientHandler.PROPERTY_HTTP_URL_CONNECTION_SET_METHOD_WORKAROUND, true);

 Client c = Client.create(config);
 Form f = new Form();
 f.add("id", "foobar");

 WebResource r = c.resource("http://127.0.0.1/foo");
 String methodName = "foobar";
 String response = r.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).accept(MediaType.APPLICATION_JSON_TYPE).header("USER-AGENT", "my-java-sdk /1.1").method(methodName.toUpperCase(), String.class, f);

Результатом является следующее исключение:

 com.sun.jersey.api.client.ClientHandlerException: java.net.ProtocolException: Invalid HTTP method: FOOBAR

Я пробовал различные способы решить эту проблему, но безуспешно.

  • http://java.net/jira/browse/JERSEY-639был реализован выше в строке config.getProperties(). Все еще получая ошибку
  • , когда я переключаюсь на http-клиент apache, я получаю 411 ошибок от сервера, получающего запросы для всех запросов без GET и без PUT.

Короче говоря, я хочу реализовать аналогичную функциональность, доступную через Java:

Заранее благодарим вас за отзыв

]

6
задан Community 23 May 2017 в 12:25
поделиться