2012-06-11 4 views
1

Я пытаюсь получить доступ к веб-службе REST с помощью HTTP GET-запроса.Добавление дополнительных параметров для REST HTTP GET

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

http://localhost:8080/mycompany/parts/category 

Я хочу, чтобы проверить подлинность/авторизации пользователей, которые получают доступ выше запроса REST в каждый раз, и я хочу, чтобы передать параметры аутентификации пользователя (имя пользователя и лексемы) с HTTP Get запроса.

Есть ли возможность удовлетворить вышеуказанное требование в запросе REST HTTP GET (используя HTTP-заголовок или параметры запроса)?

или

ли лучше использовать HTTP POST вместо HTTP GET?

+0

Какой механизм аутентификации вы имеете в виду? Планируете ли вы использовать стандартные механизмы BASIC/DIGEST или пользовательский аут? –

+0

Это зависит от веб-службы, если он принимает токены HttpHeader. Некоторые службы используют OAuth, которые часто используют http-заголовок. Проверьте сервисную документацию, если таковая имеется ... Что касается POST/GET - они обычно используются для разных действий - GET for READ и POST для SAVE. Обычно их не следует смешивать - каждый из них используется для определенной команды. – Tisho

+0

@SureshKumar Я планирую использовать специальный механизм проверки подлинности. У меня нет идеи о том, можно ли использовать стандартные методы Auth в REST. Im Чтение на нем – Nalakap

ответ

0

Поскольку вы получаете информацию, вы должны использовать «Получить». Вот код, который я использую (это Restlet основе) для добавления oauth_token к запросу ...

import org.restlet.data.Reference; 
import org.restlet.ext.oauth.OAuthUser; 
import org.restlet.representation.Representation; 
import org.restlet.resource.ClientResource; 

Reference commitsRef = new Reference(Consts.RESOURCE_BASE + "commitments/"); 
OAuthUser u = (OAuthUser) request.getClientInfo().getUser(); 
String token = u.getAccessToken(); 
ref.addQueryParameter("oauth_token", token); 
ClientResource commitsResource = new ClientResource(getContext(), commitsRef); 
Representation commitsRep = commitsResource.get(); 

Как уже упоминалось, это Restlet основе, но, вероятно, что-то подобное в рамках вы используете. (И если вы не используете фреймворк, Restlet может сделать это проще).

0

если вы используете Restlet, чем пользы, потому что Restlet имеют богатый интерфейс для базы отдыха

, но без этого, если вы хотите проверить подлинность чем вы можете сделать то же самое с GET или POST

но отправить верительных data trough cookie

и читать тот же файл cookie, используя @CookieParam с серверной стороны таким образом, вы можете легко аутентифицировать пользователя.

Смежные вопросы