我需要通过jersey客户端为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);
我收到此错误:
{ “错误”:{ “代码”: “001”, “描述”:“认证 失败”, “文档”: “http://www.clickatell.com/help/apidocs/error/001.htm”}}
文档说明未指定auth标头。该请求在Postman(chrome restful client extension)中使用相同的标题
正常工作需要帮助。
答案 0 :(得分:2)
1)你的标题似乎正在经历。如果不是,您将收到有关未设置版本标头的错误。
2)001错误表示您的身份验证令牌未指定或不正确。
3)我建议您复制并粘贴整个身份验证令牌,然后重试。注意_或。字符,因为它们是令牌的一部分。
答案 1 :(得分:0)
感谢@whatever_sa在代码中也需要一些改进,并且auth键存在问题,你的答案至少让我再次检查auth密钥。这是工作代码
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);