首先,鄙视一下搜狐微博API,比起哪个新浪的日本人:Yusuke Yamamoto的还差一截呀!

没有完整的包装微博的API做为一个完整的SDK,真是让人费脑筋让人做一个测试.

话入正题:

import java.io.File;
import java.io.IOException;
import java.net.URLEncoder;import javax.activation.MimetypesFileTypeMap;import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.multipart.FilePart;
import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
import org.apache.commons.httpclient.methods.multipart.Part;
import org.apache.commons.httpclient.methods.multipart.StringPart;public class SohuBlogger {HttpClient client = new HttpClient();String SERVER_UPDATE = "http://api.t.sohu.com/statuses/upload.xml";String USERNAME = "heweiya@gmail.com";String PASSWORD = "XXXXX";public static void main(String[] args) {SohuBlogger controller = new SohuBlogger();try {controller.postMessage("测试微博!!!,这次带图片");} catch (HttpException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public void postMessage(String msg) throws HttpException, IOException {boolean needAuthentication = true;if (needAuthentication) {client.getParams().setAuthenticationPreemptive(true);client.getState().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT,AuthScope.ANY_REALM),new UsernamePasswordCredentials(USERNAME, PASSWORD));}PostMethod method = new PostMethod(SERVER_UPDATE);if (needAuthentication) {method.setDoAuthentication(true);}msg = URLEncoder.encode(msg, "UTF-8");File file = new File("c:\\tt.jpg");StringPart sp = new StringPart("status", msg);FilePart fp = new FilePart("pic", file.getName(), file,new MimetypesFileTypeMap().getContentType(file),"UTF-8");fp.setTransferEncoding("binary");MultipartRequestEntity mrp= new MultipartRequestEntity(new Part[]{sp,fp}, method.getParams());method.setRequestEntity(mrp);//执行postMethod               client.executeMethod(method);System.out.println("post status: " + method.getStatusLine().toString());System.out.println("post page content: "+ method.getResponseBodyAsString());method.releaseConnection();}
}

为了增加一下鄙视的力量,大家看看新浪微博API如何做到上面的一切.

public void pubSinaWeibo(List<BlogDetail> blogs) throws IOException{for (int i = 0; i < blogs.size(); i++) {//说明一下,这是我自己数据库里的东西,希望大家传入自己要用的东西,比如String类型,就不用使用FOR循环了.哈哈,懒得动代码了...BlogDetail blog = blogs.get(i);BlogInfo info = blog.getInfo();System.out.println("正在导出日志" + i + ":" + info.getTitle());Weibo weibo = new Weibo();/** 此处需要填写AccessToken的key和Secret,可以从OAuthUpdate的执行结果中拷贝过来*/weibo.setToken("#######","######");Status status;try {String weiboText = "@家军在" + blog.getPubDateTime() + "发布了QQ日志:"+ info.getTitle() + ",请查看图片!";String msg = URLEncoder.encode(weiboText, "UTF-8");File file = new File("c:\\tt.jpg");status = weibo.uploadStatus(msg, file);
//这一句就够了!Thread.sleep(1350); // 休息0.25秒,太快会不会有问题?服务器负担太大?} catch (WeiboException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

通过搜狐微博API,发带图片的微博相关推荐

  1. php curl发布微博,php curl利用嘀咕、搜狐微博API发布微博

    嘀咕.搜狐微博API使用昨晚简单地研究了一下,下面是用php curl利用嘀咕.搜狐微博API发布微博,具体如下: $username = 'xieyanwei51'; $password = '12 ...

  2. C# 通过搜狐微博api远程更换壁纸

    通过搜狐微博的api,使用http basic 认证,新浪的oauth还要通过浏览器认证,太麻烦,整个程序分为几个小部分,不难. 实现以下功能: 1,开机启动.程序运行有会创建C:\bgimg文件夹, ...

  3. 腾讯微博发表带图片的微博

    鉴于很多网友都说发表腾讯微博的时候出现鉴权的情况,整理了一下已经开发过的微博代码,奉献出来,希望可以帮助到有需要的网友.至于需要认证和鉴权的代码我已经打包jar包了,大家可以直接使用.原理就是根据腾讯 ...

  4. 用python定时自动发微博_Python脚本实现自动发带图的微博

    要自动发微博最简单的办法无非是调用新浪微博的API(因为只是简单的发微博,就没必要用它的SDK了).参考开发文档http://open.weibo.com/wiki/API 进行代码编写 创建应用 要 ...

  5. python贴吧发帖脚本-Python脚本实现自动发带图的微博

    要自动发微博最简单的办法无非是调用新浪微博的API(因为只是简单的发微博,就没必要用它的SDK了).参考开发文档http://open.weibo.com/wiki/API 进行代码编写 创建应用 要 ...

  6. thinkcmf5调用指定分类的二级_Tengine快速上手系列教程amp;视频:基于Python API的图片分类应用入门丨附彩蛋...

    前言:近期,Tengine团队加班加点,好消息接踵而来,OpenCV 4.3.0发布,OPEN AI LAB AIoT智能开发平台Tengine与OpenCV合作共同加速边缘智能,Tengine再获业 ...

  7. java canvas 缩放图片_详解如何用HTML5 Canvas API控制图片的缩放变换

    摘要:这篇HTML5栏目下的"详解如何用HTML5 Canvas API控制图片的缩放变换",介绍的技术点是"html5_canvas.canvas.Html5.控制图片 ...

  8. 让图片说出声音来(利用讯飞API实现图片转文字和文字转语音)

    k思路:调用讯飞的图片识别和语音输出的API实现图片转文字和语音 **APPID,APIKey,APISecret自己在讯飞网站注册即可**,免费使用的,填在img_audio.php文件最后对应的位 ...

  9. 利用facebook graph api发送图片

    工作环境为mac 目的:尝试使用facebook提供的api发送图片 facebook有个开发者网站https://developers.facebook.com 本人尝试过两种方式利用faceboo ...

  10. Java调用百度OCR文字识别API实现图片文字识别软件

    java_baidu_ocr Java调用百度OCR文字识别API实现图片文字识别软件 这是一款小巧方便,强大的文字识别软件,由Java编写,配上了窗口界面 调用了百度ocr文字识别API 识别精度高 ...

最新文章

  1. Centos nginx 安装 源码方式安装
  2. python里面的之前打过的记忆信息-忘了Python关键语句?这份备忘录拯救你的记忆...
  3. teach-es6-2(class)
  4. string和json转换的简单应用
  5. ci php redis,一次基于CI的Redis性能问题定位
  6. 软件开发生命周期中的设计阶段_什么是软件生命周期模型?软件测试和软件开发的关系分析!...
  7. python制作课程表_创建课程表设计
  8. msdtc备份oracle,域渗透-msdtc实现dll劫持后门
  9. 无线遥控433MHz编码发射
  10. 热敏打印机打不出字怎么解决
  11. 什么是多边形网格?对于3D建模来说是个怎样的存在?
  12. C语言:按照样例输出打印一个长方形图形
  13. 一、与电视有关的视觉特性:
  14. 5.cuBLAS开发指南中文版--cuBLAS中的Create()和Destroy()
  15. Python通过MQTT协议上传物联网数据给ThingsBoard
  16. Python绘图:使用Basemap绘制全球地形图
  17. Android:在同一WiFi下通讯(局域网下服务端和客户端通讯)
  18. python多张图叠加为一张_Python PIL实现图片重叠
  19. java导出excel中文名称问题
  20. 【微信小程序】NodeJs调用云开发HTTP API错误代码47001 / data format error错误

热门文章

  1. JavaEE程序猿面向对象世界观⑥
  2. FineCMS任意头像上传漏洞复现:文件的四次上传
  3. 8/人天,小记一次 JAVA(APP后台) 项目改造 .NET 过程(后台代码已开源于 Github)
  4. 苹果手机换电池对手机有影响吗_你知道你的手机电池多久换一次吗?
  5. ULC2平台CTA音频调试记
  6. Python培训得多少钱
  7. 如何制定项目PMO战略计划?
  8. QFile读取移动硬盘文件卡死问题
  9. 解决配置静态IP还是会出现动态IP地址的问题
  10. ubuntu下firefox浏览器不能播放视频解决方法