표지판 OAuthConsumer 클래스는 setAdditionalParameters 메서드를 제공합니다. 해시를 계산하고 직접 매개 변수를 추가하십시오. 유일한 문제는 OAuth Parameter Encoding이 지정하는대로 이러한 매개 변수가 푯말에 의해 퍼센트 이스케이프 처리되지 않으므로 직접 처리해야합니다. 다음은 그 예이다 : 또는
MessageDigest md = MessageDigest.getInstance("SHA1");
md.update(requestBody.getBytes());
byte[] output = Base64.encodeBase64(md.digest());
String hash = new String(output);
HttpParameters parameters = new HttpParameters();
parameters.put("oauth_body_hash", URLEncoder.encode(hash, "UTF-8"));
CommonsHttpOAuthConsumer signer = new CommonsHttpOAuthConsumer(key, secret);
HttpPost request = new HttpPost(url);
request.setHeader("Content-Type", "application/xml");
request.setEntity(new StringEntity(requestBody, "UTF-8"));
signer.setAdditionalParameters(parameters);
signer.sign(request);
, 당신이 서명하기 전에 요청에 헤더를 설정할 수 있으며 표지판은 자신과의 헤더를 병합합니다 :
request.setHeader("Authorization", "OAuth oauth_body_hash=\""+URLEncoder.encode(hash, "UTF-8")+"\"");