我正在将我的web应用与AppDirect, 进行集成,为此我使用jersey创建了一个java rs API。使用路标对HTTP消息进行签名时获取401
当我订阅一个事件时,我得到一个包含oauth值(密钥和秘密)的地图来签名我的请求和一个事件url,我向其发出一个标志提取。
我正在按预期得到这些值(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
我也试图与以下测试值:
- url =“https://www.appdirect.com/api/integration/v1/events/dummyOrder”;
- dummyKey =“Dummy”;
- dummySecret =“secret”; 但我得到了同样的结果。
请问我该如何解决?
我也试过和添加此:
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);
在授权物业
是的,我已经使用OAuthConsumer consumer = new DefaultOAuthConsumer(consumer_key,secret);我会添加一些代码 – eeadev
检查,我更新了一点。 – cingulata
我有一个有效的消费者密钥和秘密,我将它传递给我的DefaultOAuthConsumer对象。我应该在哪里使用它? – eeadev