Ошибка при получении заголовков запроса клиента Джерси?
Мне нужно установить эти заголовки для вызова REST через клиент Джерси. clickatell сообщение отправить остальные вызов
curl -i \
-X POST \
-H "X-Version: 1" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Your Authorization Token" \
-H "Accept: application/json" \
Мой код:
Client client = Client.create();
WebResource webResource = client.resource("https://api.clickatell.com/rest/message");
ClientResponse response = webResource
.header("Authorization", "Bearer clickATellAuthKey")
.header("X-Version", "1")
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.post(ClientResponse.class, input);
Я получаю эту ошибку:
{"error": {"code": "001","description": "Ошибка аутентификации","Документация": " http://www.clickatell.com/help/apidocs/error/001.htm"}}
в документе говорится, что заголовок auth не указан. Запрос работает нормально в Postman (расширение клиента Chrome Restful) с теми же заголовками
Нужна помощь.
2 ответа
Благодаря @whever_sa, в коде требуются некоторые улучшения, а также была проблема с ключом аутентификации. Ваш ответ, по крайней мере, заставил меня проверить ключ аутентификации еще раз. вот рабочий код
ClientResponse response = webResource.type(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)
.header(MessageServices.API_AUTH_HEADER, MessageServices.AUTH_KEY)
.header(MessageServices.API_VERSION_HEADER, MessageServices.API_VERSION)
.post(ClientResponse.class, input);
1) Ваши заголовки, кажется, проходят. Если это не так, вы получите сообщение об ошибке не установки заголовка версии.
2) Ошибка 001 означает, что ваш токен аутентификации либо не указан, либо неверен.
3) Я предлагаю скопировать и вставить весь токен аутентификации и повторить попытку. Остерегайтесь _ или. персонажи, поскольку они являются частью токена.