[英]how to use token and secret in Oauth in android
我在Android中使用Signpost進行OAuth。
我正在獲取Http狀態碼500
並得到
{"messages":{"error":[{"code":401,"message":"oauth_problem=parameter_absent&oauth_parameters_absent=oauth_signature_method"}]}}
以下是代碼:
client = new DefaultHttpClient();
ArrayList<NameValuePair> requestParaRegister = new ArrayList<NameValuePair>();`enter code here`
requestParaRegister.add(new BasicNameValuePair("firstname",_firstName));
requestParaRegister.add(new BasicNameValuePair("lastname",_lastName));
requestParaRegister.add(new BasicNameValuePair("username",_username));
requestParaRegister.add(new BasicNameValuePair("email", _emailID));
requestParaRegister.add(new BasicNameValuePair("password",_password));
HttpPost postRequest = new HttpPost("http://*************************/customers");
//添加了setsign方法。
Consumer.setMessageSigner(new OAuthMessageSigner(){
@Override
public String sign(HttpRequest arg0, HttpParameters arg1)
throws OAuthMessageSignerException {
// TODO Auto-generated method stub
return OAuth.percentEncode(CONSUMER_SECRET) + "&"
+ OAuth.percentEncode(_tokenSecret);
// consumer.setMessageSigner(OAuth.percentEncode(CONSUMER_SECRET));;
}
@Override
public String getSignatureMethod() {
// TODO Auto-generated method stub
return null;
}
getOauthConsumer().sign(postRequest);
public OAuthConsumer getOauthConsumer() {
OAuthConsumer consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
consumer.setTokenWithSecret(_token, _tokenSecret);
return consumer; }
路標僅支持兩種引用方法,例如“ PLAINTEXT&HMAC_SHA1”。 但是,根據您的情況,應使用“ HMAC_SHA1”。 請參閱路標中的SignatureMethod枚舉。
通常,您需要以下參數來簽署請求
OAUTH_CONSUMER_KEY
OAUTH_CONSUMER_SECRET
OAUTH_SIGNATURE_METHOD
OAUTH_TIMESTAMP
OAUTH_NONCE
OAUTH_VERSION
OAUTH_TOKEN
OAUTH_TOKEN_SECRET
您可以在http://tools.ietf.org/pdf/rfc5849.pdf上找到有關oauth的更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.