Как определить, какой формат клиент запрашивает обратно в мой веб-сервис REST? - PullRequest
0 голосов
/ 27 января 2011

У меня есть настройка Java WebService, которая использует файл xml и хочу иметь возможность создавать xml или json в зависимости от того, что запрашивает клиент.Я знаю, что это возможно через чтение REST-методов Джерси, но это не показывает, как извлечь эту информацию.Я также посмотрел на Google во всем, но не могу найти каких-либо примеров этого.

http://wikis.sun.com/display/Jersey/Overview+of+JAX-RS+1.0+Features - это сайт, на который я изначально ссылался, который показывает, что это возможно, мне просто интересно, сможет ли кто-нибудь помочь мне выяснить, как на самом деле отличить запрос клиента.Это в заголовке HTML?тело?И если да, то как правильно его извлечь?

Так выглядит мой метод в настоящее время, у меня нет проблем с подключением, я просто выясняю, что клиент запрашивает в качестве возвращаемого типа.

@POST<br> @Path("getStatisticData")<br> @Produces ({"application/xml","application/json"})<br> @Consumes ("application/xml")<br> public String getStatisticData(@FormParam("xmlCoords") String xmlFile) throws Exception{

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 27 января 2011

Вы можете извлечь его, используя аннотацию @HeaderParam:

...
public String getStatisticData(@HeaderParam("Accept") String accept,
    @FormParam("xmlCoords") String xmlFile) throws Exception {

    ...

}
1 голос
/ 27 января 2011

Заголовок Accept в запросе используется для того, чтобы клиент указывал серверу, какие методы он поддерживает.

0 голосов
/ 27 января 2011

Если клиент может установить заголовки HTTP, правильный способ сделать это - использовать заголовок Accept:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

Если это невозможно, запрошенный тип может бытьпередан в качестве аргумента.

В качестве альтернативы, предоставьте два разных веб-сервиса: один, который возвращает XML, другой, который возвращает JSON.Каждый веб-сервис будет вызывать один и тот же код, но с параметром, указывающим, какой формат использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...