获取Request Token步骤
使用
Oauth-signpost项目
生成
consumer = new CommonsHttpOAuthConsumer(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);
provider = new CommonsHttpOAuthProvider(Constants.REQUEST_URL, Constants.ACCESS_URL, Constants.AUTHORIZE_URL);
对象,
调用
provider.retrieveRequestToken(consumer, "null");
package org.marsdroid.oauth01;
import oauth.signpost.OAuthConsumer;
import oauth.signpost.OAuthProvider;
import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer;
import oauth.signpost.commonshttp.CommonsHttpOAuthProvider;
import android.app.Activity;
import android.os.Bundle;
public class PrepareRequestTokenActivity extends Activity {
//signpost里面的成员变量 都是接口类型
//代表了应用程序
private OAuthConsumer consumer;
//代表了服务器提供者 指网站
private OAuthProvider provider;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
consumer = new CommonsHttpOAuthConsumer(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);
provider = new CommonsHttpOAuthProvider(Constants.REQUEST_URL, Constants.ACCESS_URL, Constants.AUTHORIZE_URL);
new OAuthRequestTokenTask(this, consumer, provider).execute();
}
}
package org.marsdroid.oauth01;
import oauth.signpost.OAuthConsumer;
import oauth.signpost.OAuthProvider;
import android.content.Context;
import android.os.AsyncTask;
public class OAuthRequestTokenTask extends AsyncTask<Void, Void, Void>{
private Context context;
private OAuthConsumer consumer;
private OAuthProvider provider;
public OAuthRequestTokenTask(Context context, OAuthConsumer consumer,
OAuthProvider provider) {
super();
this.context = context;
this.consumer = consumer;
this.provider = provider;
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
try {
System.out.println("请求Request Token之前" + consumer.getToken());
//这一步是真正访问服务器去获取Request Token 第二个参数 是回调的地址
final String url = provider.retrieveRequestToken(consumer, "null");
System.out.println("请求Request Toker之后" + consumer.getToken());
System.out.println("url---->" + url);
} catch(Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}