【发布时间】:2016-09-24 06:08:06
【问题描述】:
我正在将我的网络应用程序与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);
还尝试在 Authorization 属性中使用 key:secret
【问题讨论】:
标签: java oauth httpurlconnection signpost appdirect