使用java代码获取新浪微博应用的access token

简介: 使用java代码获取新浪微博应用的access token
package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.impl.client.DefaultHttpClient;
public class WeiboAccessTokenRequest 
{
  static public void main(String[] arg)
  {
    //System.setProperty("http.proxyHost", "proxy.wdf.diablo.corp");
    //System.setProperty("http.proxyPort", "8080");
    HttpClient httpclient = new DefaultHttpClient();   
    HttpPost post = new HttpPost();
    URI url;
    try 
    {
      //url = new URI("https://api.weibo.com/oauth2/access_token");
      String request = "https://api.weibo.com/oauth2/access_token?client_id=3921363495&client_secret=bac53e1f9c1e66514cf7410e39d581dd"
          + "&grant_type=authorization_code&code=7420036e360713bab82f62a5275aaba7&redirect_uri=https://api.weibo.com/oauth2/default.html";
      url = new URI(request);
      post.setURI(url);
      HttpHost proxy = new HttpHost("proxy", 8080);
      httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
      /*post.addHeader("client_id", "3921363495");
      post.addHeader("client_secret", "bac53e1f9c1e66514cf7410e39d581dd");
      post.addHeader("grant_type", "authorization_code");
      post.addHeader("code", "7420036e360713bab82f62a5275aaba7");
      post.addHeader("redirect_uri", "https://api.weibo.com/oauth2/default.html");*/
      HttpResponse response = httpclient.execute(post);
      HttpEntity entity = response.getEntity();     
      if (entity == null)
      {
        System.out.println("response is null!");
        return;
      }     
      InputStream instreams = entity.getContent();     
      String str = convertStreamToString(instreams);   
      System.out.println("Do something");    
      System.out.println(str);   
    } 
    catch (Exception e) 
    {
      e.printStackTrace();
    }
  }
  public static String convertStreamToString(InputStream is) 
  {       
    BufferedReader reader = new BufferedReader(new InputStreamReader(is));       
    StringBuilder sb = new StringBuilder();       
    String line = null;       
    try {       
      while ((line = reader.readLine()) != null) {   
        sb.append(line + "\n");       
        }       
    } catch (IOException e) {       
      e.printStackTrace();       
    } finally {       
      try {       
        is.close();       
      } catch (IOException e) {       
        e.printStackTrace();       
      }       
    }       
    return sb.toString();       
  }   
}
相关文章
|
5天前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
17 5
|
3天前
|
Java 开发者
探索Java中的Lambda表达式:简化你的代码之旅##
【8月更文挑战第62天】 Java 8的发布为开发者带来了诸多新特性,其中最引人注目的无疑是Lambda表达式。这一特性不仅让代码变得更加简洁,还极大地提升了开发的效率。本文将通过实际示例,展示如何利用Lambda表达式来优化我们的代码结构,同时探讨其背后的工作原理和性能考量。 ##
|
6天前
|
Java API 开发者
探索Java中的Lambda表达式:简化代码,提升效率
【9月更文挑战第27天】在Java 8中引入的Lambda表达式为编程带来了革命性的变化。通过简洁的语法和强大的功能,它不仅简化了代码编写过程,还显著提升了程序的执行效率。本文将深入探讨Lambda表达式的本质、用法和优势,并结合实例演示其在实际开发中的应用。无论你是Java新手还是资深开发者,都能从中获得启发,优化你的代码设计。
|
4天前
|
Java 测试技术
Java接口的生产环境应用注意点
在Java生产环境中,合理使用接口对提升代码质量至关重要。设计接口时应遵循单一职责原则,采用清晰命名,并控制方法数量。默认方法应谨慎使用,避免与实现类产生冲突。通过版本化管理接口更新,确保向后兼容。实现接口时需明确行为,保持实现与接口分离,利用多态增强灵活性。关注性能影响,适当文档注释及充分测试确保接口稳定可靠。综合运用这些策略,可以显著提高系统的可扩展性和维护性。
|
7天前
|
Java Linux Python
Linux环境下 代码java调用python出错
Linux环境下 代码java调用python出错
20 3
|
6天前
|
存储 Java 索引
使用java代码实现左右括号查找
使用java代码实现左右括号查找
|
4天前
|
Java 数据中心 微服务
Java高级知识:线程池隔离与信号量隔离的实战应用
在Java并发编程中,线程池隔离与信号量隔离是两种常用的资源隔离技术,它们在提高系统稳定性、防止系统过载方面发挥着重要作用。
5 0
|
6天前
|
Java 开发者 UED
Java中的异常处理机制:理解与应用
本文深入探讨Java的异常处理机制,通过实例解析如何有效使用try-catch-finally块、throws关键字及自定义异常,以提升代码的健壮性和可维护性。我们将从基础概念入手,逐步过渡到高级应用,为Java开发者提供全面指导。
|
5天前
|
安全 Java 调度
Java编程时多线程操作单核服务器可以不加锁吗?
Java编程时多线程操作单核服务器可以不加锁吗?
18 2
|
9天前
|
存储 缓存 Java
java线程内存模型底层实现原理
java线程内存模型底层实现原理
java线程内存模型底层实现原理
下一篇
无影云桌面