java上传微博图床,GitHub - echisan/wbp4j: Simple Java Api for 微博图床,使用简单的api即可完成上传图片...
wbp4j
weibo picture api for java (中二一下)
使用Java实现的微博图床API,提供简单的api即可完成上传图片到微博图床,可方便集成到自己的项目当中。
如果有兴趣或奇怪的需求或者想看故事可以查看说明文档
如果出现任何问题欢迎提issue、欢迎提pr
如果这个项目帮助到你了欢迎star鼓励一下^^
特色
使用方便简单
获取简单,直接加入maven依赖即可
cookie缓存
cookie过期自动登录
第三方依赖少,仅依赖fastjson,logback
自由度高,一切均可自定义配置
可自定义缓存介质
可自定义拦截器添加自己的逻辑
仍在维护
Maven
引入maven依赖即可
com.github.echisan
wbp4j
3.3
用法
使用默认配置
这个方式只做演示,请不要每次调用上传接口都使用UploadRequestBuilder build一次
build()方法会初始化所有的CookieContext WbpHttpRequest LoginRequest Interceptor列表等等,但是这些东西只需初始化一次,之后便是对cookie的管理。
UploadRequest uploadRequest = UploadRequestBuilder.buildDefault("your username", "your password");
UploadResponse response = uploadRequest.upload(new File("go.png"));
建议写成单例,在有需要的时候拿到UploadRequest对象调用upload方法即可
public enum UploadUtils {
INSTANCE;
private UploadRequest uploadRequest;
UploadUtils() {
uploadRequest = UploadRequestBuilder.buildDefault("yourUsername","yourPassword");
}
public UploadResponse upload(File file) throws IOException, UploadFailedException {
return uploadRequest.upload(file);
}
public UploadRequest getUploadRequest(){
return this.uploadRequest;
}
}
自定义配置
支持自定义拦截器,具体查看文档
UploadRequest uploadRequest = UploadRequestBuilder.custom("your username", "your password")
.setCacheFilename("myCache")
.addInterceptor(new UploadInterceptor() {
@Override
public boolean processBefore(UploadAttributes uploadAttributes) {
System.out.println("hello world");
return true;
}
@Override
public void processAfter(UploadResponse uploadResponse) {
}
}).build();
UploadResponse uploadResponse = uploadRequest.upload(new File(""));
返回结果
{
"message": "上传图片成功",
"imageInfo": {
"pid": "7fa15162gy1g1e5o2vlmwj20dn07e0t7",
"width": 491,
"height": 266,
"size": 27707,
"large": "https://ws3.sinaimg.cn/large/7fa15162gy1g1e5o2vlmwj20dn07e0t7.jpg",
"middle": "https://ws3.sinaimg.cn/mw690/7fa15162gy1g1e5o2vlmwj20dn07e0t7.jpg",
"small": "https://ws3.sinaimg.cn/small/7fa15162gy1g1e5o2vlmwj20dn07e0t7.jpg"
},
"result": "SUCCESS"
}
使用
Spring中使用
@SpringBootApplication
public class DemoApplication {
@Bean
public UploadRequest uploadRequest() {
return UploadRequestBuilder.buildDefault("your username", "your password");
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@RestController
@RequestMapping("/wbp4j")
class TestController {
@Autowired
private UploadRequest uploadRequest;
@PostMapping
public WbpUploadResponse uploadImage(@RequestPart("file") MultipartFile multipartFile) throws IOException, UploadFailedException {
UploadResponse upload = uploadRequest.upload(multipartFile.getBytes());
// 推荐先做一个判断
// if (response.getResult().equals(UploadResponse.ResultStatus.SUCCESS)) {
// 做自己的响应封装
//}
return (WbpUploadResponse) upload;
}
}
注意:UploadRequest是一个线程安全的类,可直接注入到你想使用的类中去,不要每次调用上传api时都去调用UploadRequestBuilder.build()是没有任何意义的
更新日志
2019.04.23
修复了修改缓存文件名不生效的问题 .
增加了登陆失败返回的信息以及对unicode的解码 .
2019.03.30
优化了重试代码 .
修复了重试机制还是不生效的问题 .
2019.03.25
修复了重试机制不生效的问题 .
2019.03.24
修复了部署到服务器后无法登陆的问题 .
修复了返回的图片格式问题 .
2019.03.23
重构代码,代码结构更清晰稳定,减低各模块的耦合 .
修复缓存文件位置错误的问题 .
修复上传图片格式问题 .
支持了上传gif .
2018.11.08
重构了代码,减少第三方依赖,目前只依赖logging,fastjson .
将包上传至官方仓库使用更方便 .
java上传微博图床,GitHub - echisan/wbp4j: Simple Java Api for 微博图床,使用简单的api即可完成上传图片...相关推荐
- ckeditor java 上传_CKEditor粘贴图片自动上传到服务器(Java版)
环境:java,springmvc,ckeditor,tomcat,maven 情况:在做项目的时候发现本地图片粘贴到ckeditor中,img标签的src中的值是"data:image/p ...
- java上传文件限速_【面试题目】Java文件下载(限速、进度条)
import javax.swing.*; import java.io.FileOutputStream; import java.io.IOException; import java.io.In ...
- java上传微博图床_php上传图片到微博图床
微博是个好图床,上传后就可以通过一个url来访问了.今天就用php来上传图片到微博,这也是来自sf的一个问题, 里面还提到一个python版本. 有2种方式实现上传图片: 如果要用 http://pi ...
- 在线将视频转为Gif图上传到csdn与github上
经常可以看到许多大牛的csdn博客和github的readme文件中有项目演示的动画,可以通过它可以直观的看到demo的效果.其实那是一张gif的图片,本片博客就介绍一下如何制作gif图片和上传gif ...
- java上传超大文件解决方案
用JAVA实现大文件上传及显示进度信息 ---解析HTTP MultiPart协议 (本文提供全部源码下载,请访问 https://github.com/1269085759/up6-jsp-mysq ...
- java 上传文件注意事项
java 上传文件注意事项 1.文件名有特殊字符的情况,所以最好是文件名前台url编码,后台再url解码,这点在下载的时候也一样 2.文件大小一定要设置,spring boot 有默认. 3.文件名校 ...
- 上传项目代码到Github|Gitee
上传项目代码到Github|Gitee 文章目录 上传项目代码到Github|Gitee 1.前置准备 1.1 Git 安装 1.2 在 Git 中设置用户名 1.2.1 为计算机上的每个存储库设置 ...
- java 上传 excel_Java对Excel表格的上传和下载处理方法
Excel表格文件的上传和下载,java中涉及到文件肯定会有io流的知识. 而excel文件就要涉及到poi技术,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为 ...
- android导入github项目,上传Android项目至github的解析
这是一个新的系列的文章,github项目,主要讲解了自己的github项目开源实践,github项目解析等. 本文主要讲解了如何将自己的android项目上传至github,相信大家平时在开发过程中为 ...
最新文章
- Python+OpenCV 图像处理系列(3)—— 画线、矩形、画圆、画椭圆、画多边形
- u-charts 曲线图中间有部分没数据,导致点和点无法连成线的问题解决
- Spring MVC 中使用 Google kaptcha 验证码
- js弹框带传值父窗口给子框_JavaScript实现弹出子窗口并传值给父窗口
- MATLAB应用实战系列(五十二)-Excel数据的读取
- 成功解决ModuleNotFoundError: No module named 'dataset'
- java 工厂方法模式_Java中的工厂方法模式
- plsql轻量版存储过程和存储函数
- python打开文件中文名_windows下Python打开包含中文路径名文件
- 一个数据科学家需要哪些核心工具包?
- js <->java 时区处理
- [转载] Sublime Text 3 插件 ClangFormat 格式化 C/C++版
- vue.js开发环境部署
- HTML5尝鲜(1):使用aduio标签打造音乐播放器
- 【王佩丰】PowerPoint2010视频教程 1
- 使用 matlab 数字图像处理(三)—— 实现图像的旋转(不使用 imrotate)
- 关闭webstorm提示 empty tag doesn't work in some browsers
- Microsoft Store连不上网解决办法
- unreal无损音乐百度云_嵐-IN THE SUMMER[FLAC]
- 【Flink】搭建单机环境
热门文章
- Microdata Wordpress,WORDPRESS使用微数据
- 1.3 项目经理的知识和技能
- 计算机小学期实践报告,小学期计算机实践报告
- 用支付宝如何自己拍证件照?
- 算法基础14 —— 图论入门之弗洛伊德算法(Floyed + Dijkstra + Bellman-Ford + SPFA)
- 华为nova2自带计算机,华为Nova2 root图文教程 华为Nova2获取root权限的方法
- Python中IO编程-文件读写
- 对一批编号为1~100,全部开关朝上(开)的灯进行以下操作:凡是1的倍数反方向拨一次开关;2的倍数反方向又拨一次开关;3的倍数反方向又拨一次开关……问:最后为关熄状态的灯的编号。
- 使用unity制作的一款生存类游戏demo(一)
- 计算机系统结构 外文,计算机系统结构外文文献 计算机系统结构参考文献怎么写...