我正在将我的网络应用与AppDirect集成, 为此我用jersey创建了一个java rs API。
当我订阅一个活动时,我会得到一张地图,其中包含用于签署我的请求的oauth值(密钥和密钥)以及我向其发出签名的事件网址。
我正在按预期获得这些值(oauth和eventurl)。
现在,当我尝试使用库signpost发出签名提取时,我使用以下代码:
OAuthConsumer consumer = new DefaultOAuthConsumer(consumer_key, secret);
// create an HTTP request to a protected resource
URL url = new URL(eventUrl);
HttpURLConnection request = (HttpURLConnection) url.openConnection();
// sign the request
consumer.sign(request);
// send the request
request.connect();
我收到此错误消息:
getResponseMessage: Unauthorized
getresponsecode: 401
我还尝试了以下测试值:
请问我该如何解决?
我也试过并添加了这个:
request.setRequestMethod("GET");
request.setRequestProperty("Authorization", "OAuth");
request.setRequestProperty("Host", "...");
request.setRequestProperty("Content-Type", "application/xml");
request.setRequestProperty("oauth_nonce", oauth_nonce);
request.setRequestProperty("oauth_signature", oauth_signature);
request.setRequestProperty("oauth_signature_method", oauth_signature_method);
request.setRequestProperty("oauth_timestamp", oauth_timestamp);
request.setRequestProperty("oauth_version", oauth_version);
还尝试使用授权属性中的key:secret
答案 0 :(得分:2)
以下是通过Postman Chrome扩展程序进行测试时此服务的行为。 如果您使用的是OAuth提供程序,那么您需要为AppDirect获取有效的api-key和密码。
BTW第二个屏幕截图显示您不需要将OAuth令牌发送到appdirect到https://www.appdirect.com/api/integration/v1/events/dummyOrder,因为它会授权任何网址。
因此,根据您的说明,您必须添加正确的(密钥和密钥),然后AppDirect OAuth服务器将返回您在寻址AppDirect的存储库时将使用的有效令牌。或者您可以在每次请求时发送密钥。