package org.aisen.weibo.sina.sinasdk.core;
import android.text.TextUtils;
import org.aisen.android.common.utils.Logger;
import org.aisen.android.network.task.IExceptionDeclare;
import org.aisen.android.network.task.TaskException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
public class SinaErrorMsgUtil implements IExceptionDeclare {
private static final Map<String, String> errorMap = new HashMap<String, String>();
/**
* 根据服务器返回的错误代码,返回错误信息
*
* @param errorMsg
* @return
*/
private static final String[][] errorMsgs = new String[][] { { "10002", "服务暂停" }, { "10009", "任务过多,系统繁忙" }, { "10010", "任务超时" }, { "10017", "分组名称长度超过限制" },
{ "10022", "IP请求频次超过上限" }, { "10023", "用户请求频次超过上限,请重新授权" }, { "10024", "用户请求特殊接口频次超过上限" }, { "10025", "备注长度不正确,应为0~30个字符" },
{ "20019", "不能发布相同内容" }, { "20008", "内容不能为空" }, { "20003", "用户不存在" }, { "20006", "图片太大" }, { "20012", "字数超过140限制" },
{ "20015", "账号、APP或者IP异常,请稍后再试。(sina有毛病)" }, { "20016", "发布内容过于频繁" }, { "20017", "提交相似的信息" }, { "20018", "包含非法网址" },
{ "20020", "包含广告信息" }, { "20021", "包含非法内容" }, { "20031", "需要验证码,操作太频繁" },
{ "20104", "不合法的微博" }, { "20101", "该微博已经删除" },
{ "20203", "该评论已被删除" }, { "20207", "Ta设置了不允许你评论他的微博" }, { "20202", "不合法的评论" }, { "20206", "仅Ta的好友能回复Ta" }, { "20508", "根据对方的设置,你不能进行此操作" },
{ "20512", "你已经把此用户加入黑名单,加关注前请先解除" }, { "20513", "你的关注人数已达上限" }, { "20506", "已经关注了" }, { "20522", "还没有关注该用户" },
{ "20521", "hi 超人,你今天已经取消关注很多喽,接下来的时间想想如何让大家都来关注你吧!如有问题,请联系新浪客服:400 690 0000" }, { "20603", "分组不存在" }, { "20608", "分组名不能重复" },
{ "21602", "含有敏感词" }, { "20704", "该微博已经收藏过了" }, { "20705", "还没有收藏该微博" }, { "21301", "授权过期,请重新授权" }, { "21321", "应用请求超过API限制了" },
{ "21317", "授权被取消,请重新授权" }, { "21324", "安全方面考虑,开发人员重置了应用秘钥,当前应用被视为盗版,请重新从应用市场下载!" },
{ "21327", "授权过期,请重新授权" }, { "21332", "授权过期,请重新授权" }, {"21923", "没有找到相关位置信息"} };
static {
for (String[] errorArr : errorMsgs) {
errorMap.put(errorArr[0], errorArr[1]);
}
errorMap.put("invalid_access_token", "无效授权,请稍后尝试重新授权");
}
@Override
public void checkResponse(String response) throws TaskException {
Logger.w(response);
if (!TextUtils.isEmpty(response)) {
if (response.indexOf("that page doesn’t exist!") != -1)
throw new TaskException("", "渣浪TMD的神经病,请稍后重试...");
}
String code = null;
String msg = null;
if (!TextUtils.isEmpty(response)) {
JSONObject jsonMsg;
try {
jsonMsg = new JSONObject(response);
if (jsonMsg.has("error")) {
if (jsonMsg.has("error_code")) {
msg = jsonMsg.getString("error");
if ("invalid_access_token".equals(msg)) {
code = "21327";
}
else {
code = jsonMsg.getString("error_code");
}
if (errorMap.containsKey(code))
msg = errorMap.get(code);
}
}
} catch (Exception e) {
}
}
if (!TextUtils.isEmpty(msg))
throw new TaskException(code, msg);
throw new TaskException(code);
}
@Override
public String checkCode(String code) {
if (errorMap.containsKey(code))
return errorMap.get(code);;
return null;
}
}