模拟登录获取新浪微博的access_token
来源:互联网 发布:知乎奶酪陷阱白仁荷 编辑:程序博客网 时间:2024/04/29 08:25
public static AccessToken refreshToken(){
Properties props = new Properties();
try {
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("sina_account.properties"));
String url = props.getProperty("url");/*模拟登录的地址,https://api.weibo.com/oauth2/authorize*/
PostMethod postMethod = new PostMethod(url);
postMethod.addParameter("client_id", props.getProperty("client_id"));//your client id
postMethod.addParameter("redirect_uri", props.getProperty("redirect_uri"));//your url
postMethod.addParameter("userId", props.getProperty("userId"));//需要获取微薄的use id
postMethod.addParameter("passwd", props.getProperty("passwd"));
postMethod.addParameter("isLoginSina", "0");
postMethod.addParameter("action", "submit");
postMethod.addParameter("response_type", props.getProperty("response_type"));//code
HttpMethodParams param = postMethod.getParams();
param.setContentCharset("UTF-8");
List<Header> headers = new ArrayList<Header>();
headers.add(new Header("Referer", "https://api.weibo.com/oauth2/authorize?client_id=your_client_id&redirect_uri=your_redirect_url&from=sina&response_type=code"));//伪造referer
headers.add(new Header("Host", "api.weibo.com"));
headers.add(new Header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0"));
HttpClient client = new HttpClient();
client.getHostConfiguration().getParams().setParameter("http.default-headers", headers);
client.executeMethod(postMethod);
int status = postMethod.getStatusCode();
if(status != 302){
LOG.error("refresh token failed");
return null;
}
Header location = postMethod.getResponseHeader("Location");
if(location != null){
String retUrl = location.getValue();
int begin = retUrl.indexOf("code=");
if(begin != -1){
int end = retUrl.indexOf("&", begin);
if(end == -1)
end = retUrl.length();
String code = retUrl.substring(begin+5, end);
if(code != null){
AccessToken token = oauth.getAccessTokenByCode(code);
Oauth oauth = new Oauth();
return token;
}
}
}
} catch (FileNotFoundException e) {
LOG.error("error" + e);
} catch (IOException e) {
LOG.error("error" + e);
}
LOG.error("refresh token failed");
return null;
}
Properties props = new Properties();
try {
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("sina_account.properties"));
String url = props.getProperty("url");/*模拟登录的地址,https://api.weibo.com/oauth2/authorize*/
PostMethod postMethod = new PostMethod(url);
postMethod.addParameter("client_id", props.getProperty("client_id"));//your client id
postMethod.addParameter("redirect_uri", props.getProperty("redirect_uri"));//your url
postMethod.addParameter("userId", props.getProperty("userId"));//需要获取微薄的use id
postMethod.addParameter("passwd", props.getProperty("passwd"));
postMethod.addParameter("isLoginSina", "0");
postMethod.addParameter("action", "submit");
postMethod.addParameter("response_type", props.getProperty("response_type"));//code
HttpMethodParams param = postMethod.getParams();
param.setContentCharset("UTF-8");
List<Header> headers = new ArrayList<Header>();
headers.add(new Header("Referer", "https://api.weibo.com/oauth2/authorize?client_id=your_client_id&redirect_uri=your_redirect_url&from=sina&response_type=code"));//伪造referer
headers.add(new Header("Host", "api.weibo.com"));
headers.add(new Header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0"));
HttpClient client = new HttpClient();
client.getHostConfiguration().getParams().setParameter("http.default-headers", headers);
client.executeMethod(postMethod);
int status = postMethod.getStatusCode();
if(status != 302){
LOG.error("refresh token failed");
return null;
}
Header location = postMethod.getResponseHeader("Location");
if(location != null){
String retUrl = location.getValue();
int begin = retUrl.indexOf("code=");
if(begin != -1){
int end = retUrl.indexOf("&", begin);
if(end == -1)
end = retUrl.length();
String code = retUrl.substring(begin+5, end);
if(code != null){
AccessToken token = oauth.getAccessTokenByCode(code);
Oauth oauth = new Oauth();
return token;
}
}
}
} catch (FileNotFoundException e) {
LOG.error("error" + e);
} catch (IOException e) {
LOG.error("error" + e);
}
LOG.error("refresh token failed");
return null;
}
- 模拟登录获取新浪微博的access_token
- android 新浪微博登录获取access_token值的问题
- 关于新浪微博获取access_token
- 新浪授权登录 正确的获取access_token (都不能用curl请求,包括微信授权登录 ) 要用file_get_contents
- 模拟登录新浪微博
- httpClient4模拟登录新浪微博
- 模拟登录新浪微博(Python)
- scrapy模拟登录新浪微博
- node.js 模拟登录新浪微博
- C# 新浪微博模拟登录
- 模拟新浪微博wap登录
- java实现模拟登录新浪微博
- Python模拟新浪微博登录
- 新浪微博模拟登录 java实现
- scrapy模拟登录新浪微博
- python 模拟登录新浪微博
- python模拟登录新浪微博
- 模拟登录新浪微博(Python)
- 全息投影简介
- 作为软件工程师,你必须知道的20个常识
- PHP关于检测用户是否登陆,以及设置拦截器(简单实现)
- Apache Rewrite 规则详解
- 全息
- 模拟登录获取新浪微博的access_token
- 常用的dos网络命令
- MDX - TOPN AND OTHERS
- Java基础之面向对象(六)--异常、包
- SourceInsight配置
- DMA的一些基础问题
- MPC8313E的ltib安装
- 去掉在模态对话框处理鼠标跟键盘消息时,出现系统提示声音
- 六大设计原则