新浪微博发布一条微博和图片的接口调用实例

新浪微博接口文档:  http://open.weibo.com/wiki/2/statuses/upload   描述


调用示例:

/**
	 * 发布一条有图片的微博
	 */
	public void sendSinaWeiboWithPic(String content,String imgUrl,String accessToken){
		
		HttpClient httpClient = new HttpClient();
		httpClient.setToken(accessToken);                      //设置accessToken
		
		byte[] imageBytes = ImgUtil.getImageBinary(imgUrl);    //根据图片url得到图片的字节数组
		
		PostParameter[] params = new PostParameter[2];
		params[0] = new PostParameter("status", content);     
		params[1] = new PostParameter("pic", "");
		
		try {
			
			ImageItem item = new ImageItem(imageBytes);
			Response rsp = httpClient.multPartURL(send_weibo_pic_url, params, item);
			System.out.println(rsp);
		} catch (WeiboException e) {
			System.out.println(e.getMessage());
		}
		
	}

发布一条只带文本的微博:
 

 

/**
	 *发布一条微博信息 
	 */
	public void sendSinaWeibo(String content,String accessToken){
		HttpClient httpClient = new HttpClient();
		
		httpClient.setToken(accessToken);
		
		PostParameter param1 = new PostParameter("status", content);
		
		PostParameter[] params = new PostParameter[2];
		params[0] = param1;
		
		try {
			
			Response rsp  = httpClient.post(send_weibo_url, params);
			System.out.println(rsp);
		} catch (WeiboException e) {
			System.out.println(e.getMessage());
		}
	}



使用springboot做基础框架,提供简单页面做图片上传,接口直接模拟微博登陆,上传完成后返回图片保存链接 public String getSinaCookies() { String base64name = Base64Utils.encodeToString(username.getBytes()); String loginUrl = "https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_=1403138799543"; String params = "entry=sso&gateway=1&from=null&savestate=30&useticket=0&pagerefer;=&vsnf=1&su;=" + base64name; params += "&service=sso&sp;=" + password + "&sr=1920*1080&encoding=UTF-8&cdult=3&domain=sina.com.cn&prelt=0&returntype=TEXT"; //登录 try { URL url = new URL(loginUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoInput(true); conn.setDoOutput(true); conn.setRequestMethod("POST"); OutputStream out = conn.getOutputStream(); out.write(params.getBytes()); out.flush(); out.close(); String sessionId = ""; String cookieVal = ""; String key = null; //取cookie for (int i = 1; (key = conn.getHeaderFieldKey(i)) != null; i++) { if (key.equalsIgnoreCase("set-cookie")) { cookieVal = conn.getHeaderField(i); cookieVal = cookieVal.substring(0, cookieVal.indexOf(";")); sessionId = sessionId + cookieVal + ";"; } } if (sessionId != null) { String[] cookiearr = sessionId.split(";"); for (int i = 0; i < cookiearr.length; i++) { if (cookiearr[i].startsWith("SUB") && !cookiearr[i].startsWith("SUBP")) { sessionId = cookiearr[i] + ";"; } } } return sessionId; } catch (Exception e) { e.printStackTrace(); return null; } }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值