我已经成功地设置了twitter4j,现在可以发布文本更新,也可以将本地媒体从设备上传到twitter。但我真正需要做的是共享来自web的远程图像-例如,http://example.com/image.png
。
当我执行这段代码时…StatusUpdate statusUpdate = new StatusUpdate("Hello Twitter");String imageUrl = "http://example.com/image.png";File file = new File(imageUrl);statusUpdate.setMedia(file);twitter4j.Status status = twitter.updateStatus(statusUpdate);
…看起来twitter4j试图将url视为本地的,因为它似乎在它前面放了一个/
,然后抛出一个异常,说…/http://example.com/image.png: open failed: ENOENT (No such file or directory)
如何解决?谢谢。
最佳答案
我发现还有一个setMedia()
方法接受inputstream作为其参数之一。这个inputstream可以链接到远程图像,就像这样…
StatusUpdate statusUpdate = new StatusUpdate("Hello Twitter");
String imageUrl = "http://example.com/image.png";
URL url = new URL(imageUrl);
URLConnection urlConnection = url.openConnection();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
statusUpdate.setMedia("image.png", in);
twitter4j.Status status = twitter.updateStatus(statusUpdate);
//might be a good idea to close the inputstream in a finally block