我正在將我的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