Как я могу получить доступ к телу запроса GET из ресурса сервера REST с помощью рестлета 2.0? - PullRequest
2 голосов
/ 12 мая 2011

Я хотел бы получить доступ к телу запроса GET из ресурса сервера REST (с рестлетом 2.0).Это по нескольким причинам:

  • Я хотел бы отправить параметры (в формате JSON) в запросе GET, скажем, например, «вернуть полный объект, который имеет эти поля / значения... "

  • Я хотел бы защитить параметры запроса URL-адреса с помощью https, и, если я укажу их в качестве параметров URL, я не смогу их защитить.

  • я хотел бы избежать очень длинных URL.

я также читал: HTTP GET с телом запроса

я былглядя на код / ​​примеры и API, но я не нашел решения, не могли бы вы предложить мне подход?Вы видите лучшую структуру / решение?Спасибо !!!kocisky

Ответы [ 2 ]

1 голос
/ 13 мая 2011

Почему бы не использовать POST?Вы уже выбросили возможность кэшировать ответы, включив критерии в тело.Итак, какая польза от использования GET?

Использование POST должно быть меньшим подрывом спецификации HTTP, чем отправка тела GET.

0 голосов
/ 16 мая 2011

Чтобы сделать то, что вы хотите, вам нужно использовать API запросов и клиентов Restlet.Это невозможно сделать с помощью класса ClientResource.Ниже приведены некоторые подсказки для реализации этого:

String endpoint = "http://localhost:8084/accounts/accountId/mails/mailId";
Request request = new Request(Method.GET, endpoint);
StringRepresentation representation = new StringRepresentation(
                                  "param1=value1&param2=value2");
request.setEntity(representation);

Context context = new Context();
context.getParameters().add("tracing", "true");
Client client = new Client(context, Protocol.HTTP);
Response response = client.handle(request);

Параметр трассировки позволяет вам видеть, что на самом деле отправляется при использовании внутреннего разъема Restlet.

Надеюсь, это поможет вам, Тьерри

...