我正在将我的 web 应用程序与AppDirect集成,为此我使用 jersey 创建了一个 java rs API。
当我订阅一个事件时,我会得到一个包含 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 = "假人";
- dummySecret = "秘密"; 但我得到了同样的结果。
请问我该如何解决?
我也尝试并添加了这个:
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
也在Authorization 属性中尝试过