新浪微博用java sdk,发送带图片的微博,怎么弄?
publicclassUpload{publicstaticvoidmain(Stringargs[]){try{try{byte[]content=readFileIm...
public class Upload { public static void main(String args[]) { try { try { byte[] content = readFileImage(args[2]); System.out.println("content length:" + content.length); ImageItem pic = new ImageItem("pic", content); String s = java.net.URLEncoder.encode(args[1], "utf-8"); Timeline tl = new Timeline(); tl.client.setToken(args[0]);// access_token Status status = tl.UploadStatus(s, pic); System.out.println("Successfully upload the status to [" + status.getText() + "]."); } catch (Exception e1) { e1.printStackTrace(); } } catch (Exception ioe) { System.out.println("Failed to read the system input."); } } 是在weibo4j.examples.timeline;包里的Upload.java吗?如果是,应该怎么修改上边的代码?
展开
1个回答
展开全部
/**
* 发布一条有图片的新浪微博
* @param token 用户的令牌
* @param content 微博内容
* @param picData 图片
* @throws Exception
*/
public void addImgWeibo(Token token, String content, byte[] picData) throws Exception {
Timeline tl = new Timeline();
tl.client.setToken(token.getAccessToken());
String s = java.net.URLEncoder.encode(content, "utf-8");//有图片的微博需要转码
if(picData != null) {
ImageItem pic = new ImageItem("pic", picData);
Status status = tl.UploadStatus(s, pic);
System.out.println("----------" + status);
} else {
Status status = tl.UpdateStatus(content);//如果获得的图片为空,则只发文字
System.out.println(status);
}
}
更多追问追答
追问
那我的图片的地址,比如“E:/***.jpg”应该放在哪?文字是把content修改成“文字内容”吗?,还有你是用的新浪微博给的java sdk吗?
追答
是用的新浪的sdk,图片可以解析成二进制数据 byte[] picData,我这个方法的图片是从网上取的
public byte[] loadImageByte(String imgUrl) {
byte[] picData = null;
try {
InputStream inputImage = new URL(imgUrl).openStream();
picData = IOUtils.toByteArray(inputImage);
} catch (Exception e) {
logError("获得图片" + imgUrl + " 失败:" + e.getMessage(), e);
}
return picData;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询