最右.apk(点击下载) / RequestTokenInterception.java
package com.sina.weibo.sdk.network.intercept;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import com.alipay.sdk.util.h;
import com.sina.weibo.sdk.network.IRequestIntercept;
import com.sina.weibo.sdk.network.IRequestParam;
import com.sina.weibo.sdk.network.IRequestService;
import com.sina.weibo.sdk.network.exception.InterceptException;
import com.sina.weibo.sdk.network.impl.RequestParam;
import com.sina.weibo.sdk.network.impl.RequestService;
import org.json.JSONObject;
public class RequestTokenInterception implements IRequestIntercept {
private static String token;
private final String REFRESH_ACTION = "refresh_action";
private final String WEIBO_SDK_REFRESH_TOKEN_FILE = "weibo_sdk_refresh_token_done";
private final String WEIBO_SDK_TOKEN_KEY = "weibo_sdk_token_key_done";
private final String WEIBO_SDK_TOKEN_TIME = "video_refresh_token_time_done";
@Override // com.sina.weibo.sdk.network.IRequestIntercept
public boolean doIntercept(IRequestParam iRequestParam, Bundle bundle) throws InterceptException {
int i;
if (iRequestParam.getContext() != null) {
try {
i = ((Integer) iRequestParam.getInterceptResult("refresh_action")).intValue();
} catch (Exception unused) {
i = 0;
}
IRequestService instance = RequestService.getInstance();
RequestParam.Builder builder = new RequestParam.Builder(iRequestParam.getContext());
SharedPreferences sharedPreferences = iRequestParam.getContext().getSharedPreferences("weibo_sdk_refresh_token_done", 0);
builder.addPostParam("email", "liwei31@staff.weibo.com");
builder.addPostParam("password", "8eVZQVioD11DiZoZ5saqmttJJfqgHBockRY4GBXsbfc");
builder.setNeedIntercept(false);
if (i == 0) {
builder.setShortUrl("https://ug.edm.weibo.cn/api/gettoken");
} else {
token = sharedPreferences.getString("weibo_sdk_token_key_done", null);
Bundle header = iRequestParam.getHeader();
header.putString("Authorization", "Bearer {" + token + h.d);
builder.setShortUrl("https://ug.edm.weibo.cn/api/refreshtoken");
}
builder.setRequestType(IRequestParam.RequestType.POST);
try {
String valueOf = String.valueOf(instance.request(builder.build()).getResponse());
JSONObject jSONObject = new JSONObject(valueOf);
if ("1".equals(jSONObject.optString("status"))) {
String optString = jSONObject.optString("data");
long optLong = jSONObject.optLong("expire", 0);
if (!TextUtils.isEmpty(optString)) {
token = optString;
sharedPreferences.edit().putString("weibo_sdk_token_key_done", token).commit();
sharedPreferences.edit().putLong("video_refresh_token_time_done", optLong).commit();
return false;
}
throw new InterceptException("刷新token接口请求异常 action = " + i + " result = " + valueOf);
}
throw new InterceptException("刷新token接口请求异常 action = " + i + " result = " + valueOf);
} catch (Exception e) {
throw new InterceptException("刷新token接口请求异常 action = " + i + " error = " + e.toString());
}
} else {
throw new InterceptException("上下文设置为null");
}
}
@Override // com.sina.weibo.sdk.network.IRequestIntercept
public boolean needIntercept(IRequestParam iRequestParam, Bundle bundle) {
if (iRequestParam.getUrl().equals("https://ug.edm.weibo.cn/api/gettoken") || iRequestParam.getUrl().equals("https://ug.edm.weibo.cn/api/refreshtoken")) {
return false;
}
if (iRequestParam.getContext() == null) {
return true;
}
SharedPreferences sharedPreferences = iRequestParam.getContext().getSharedPreferences("weibo_sdk_refresh_token_done", 0);
if (TextUtils.isEmpty(token)) {
token = sharedPreferences.getString("weibo_sdk_token_key_done", null);
}
if (TextUtils.isEmpty(token)) {
iRequestParam.addInterceptResult("refresh_action", 0);
return true;
}
long j = sharedPreferences.getLong("video_refresh_token_time_done", 0);
long currentTimeMillis = System.currentTimeMillis();
int i = (j > (1209600 + currentTimeMillis) ? 1 : (j == (1209600 + currentTimeMillis) ? 0 : -1));
if (i > 0 || j == 0) {
iRequestParam.addInterceptResult("refresh_action", 0);
return true;
} else if (j <= currentTimeMillis + 604800 || i >= 0) {
Bundle header = iRequestParam.getHeader();
header.putString("Authorization", "Bearer {" + token + h.d);
return false;
} else {
iRequestParam.addInterceptResult("refresh_action", 1);
return true;
}
}
}