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

版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.blog.csdn.net/article/details/89818762

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.wdf.sap.corp", 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();       
	}   

}

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券