您的位置:首页 > 其它

CSDN开发平台客户端获取access_token.后再用就报4031错误:访问被拒绝

2017-09-27 15:23 597 查看
    

csdn的开放平台中,我想基于api做一个桌面客户端的应用。
    遇到如下问题:
    我使用的是这个验证:


客户端的验证授权(Resource Owner Password Credentials)

CsdnUtil是工具类,里面的getAccessToken方法是用来获取access_token的
GetMobile 是获取用户手机号的,在执行这个类时,报这个错误{"request":"/user/getmobile?access_token=c9de4d94751f49d6bee310073e50923f","error_code":"4031","error":"access denied"}
怎么解决这个问题?

如下是我的例子:java语言
/*******************************************************************************
* @project: JavaSE
* @package: com.burns.csdn.api.user
* @file: CSDNUtil.java
* @author: Administrator
* @created: 2017-9-27
* @purpose:
*
* @version: 1.0
*
* Revision History at the end of file.
*
* Copyright 2017 AcconSys All rights reserved.
******************************************************************************/

package com.burns.csdn.api.utils;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

import net.sf.json.JSONObject;

public class CsdnUtil {

public static String getAccessToken() throws Exception{
String urlStr = "http://api.csdn.net/oauth2/access_token?client_id=1100309&client_secret=23eaf6637b2d43128c518b8d7e4078ac&grant_type=password&username=357252539@qq.com&password=2011014888zp";

// 链接URL
URL url = new URL(urlStr);
// 返回结果集
StringBuffer document = new StringBuffer();
// 创建链接
URLConnection conn = url.openConnection();
// 读取返回结果集
BufferedReader reader = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "utf-8"));
String line = null;
while ((line = reader.readLine()) != null) {
document.append(line);
}
reader.close();
//		System.out.println(document);
JSONObject json = JSONObject.fromObject(document.toString());
// 查看json格式
System.out.println(json.toString());
//		// 获取json中某个对象
//		JSONObject obj = (JSONObject) json.get("mobile");
//		System.out.println(obj.toString());
// 获取对象中某个属性的值
String val = json.getString("access_token");
//		System.out.println(val);
return val;
}
}

/*******************************************************************************
* <B>Revision History</B><BR>
* [type 'revision' and press Alt + / to insert revision block]<BR>
*
*
*
* Copyright 2017 AcconSys All rights reserved.
******************************************************************************/

/*******************************************************************************
* @project: JavaSE
* @package: com.burns.csdn.api.user
* @file: GetEmail.java
* @author: Administrator
* @created: 2017-9-27
* @purpose:
*
* @version: 1.0
*
* Revision History at the end of file.
*
* Copyright 2017 AcconSys All rights reserved.
******************************************************************************/

package com.burns.csdn.api.user;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

import com.burns.csdn.api.utils.CsdnUtil;

import net.sf.json.JSONObject;

/**
*
user/getmobile 获取用户的手机http://open.csdn.net/wiki/api/user/getmobile
*
* @author Administrator
*
*/

public class GetMobile {

public static void main(String[] args) throws Exception {
String accessToken = CsdnUtil.getAccessToken();
String urlStr = "http://api.csdn.net/user/getmobile?access_token="+accessToken;

// 链接URL
URL url = new URL(urlStr);
// 返回结果集
StringBuffer document = new StringBuffer();
// 创建链接
URLConnection conn = url.openConnection();
// 读取返回结果集
BufferedReader reader = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "utf-8"));
String line = null;
while ((line = reader.readLine()) != null) {
document.append(line);
}
reader.close();
JSONObject json = JSONObject.fromObject(document.toString());
// 查看json格式
System.out.println(json.toString());
//		// 获取json中某个对象
//		JSONObject obj = (JSONObject) json.get("mobile");
//		System.out.println(obj.toString());
// 获取对象中某个属性的值
String val = json.getString("mobile");
System.out.println(val);

//根据access_token获取用户的mobile

}
}

/*******************************************************************************
* <B>Revision History</B><BR>
* [type 'revision' and press Alt + / to insert revision block]<BR>
*
*
*
* Copyright 2017 AcconSys All rights reserved.
******************************************************************************/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CSDN api 开放平台