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即可完成上传图片...相关推荐

  1. ckeditor java 上传_CKEditor粘贴图片自动上传到服务器(Java版)

    环境:java,springmvc,ckeditor,tomcat,maven 情况:在做项目的时候发现本地图片粘贴到ckeditor中,img标签的src中的值是"data:image/p ...

  2. java上传文件限速_【面试题目】Java文件下载(限速、进度条)

    import javax.swing.*; import java.io.FileOutputStream; import java.io.IOException; import java.io.In ...

  3. java上传微博图床_php上传图片到微博图床

    微博是个好图床,上传后就可以通过一个url来访问了.今天就用php来上传图片到微博,这也是来自sf的一个问题, 里面还提到一个python版本. 有2种方式实现上传图片: 如果要用 http://pi ...

  4. 在线将视频转为Gif图上传到csdn与github上

    经常可以看到许多大牛的csdn博客和github的readme文件中有项目演示的动画,可以通过它可以直观的看到demo的效果.其实那是一张gif的图片,本片博客就介绍一下如何制作gif图片和上传gif ...

  5. java上传超大文件解决方案

    用JAVA实现大文件上传及显示进度信息 ---解析HTTP MultiPart协议 (本文提供全部源码下载,请访问 https://github.com/1269085759/up6-jsp-mysq ...

  6. java 上传文件注意事项

    java 上传文件注意事项 1.文件名有特殊字符的情况,所以最好是文件名前台url编码,后台再url解码,这点在下载的时候也一样 2.文件大小一定要设置,spring boot 有默认. 3.文件名校 ...

  7. 上传项目代码到Github|Gitee

    上传项目代码到Github|Gitee 文章目录 上传项目代码到Github|Gitee 1.前置准备 1.1 Git 安装 1.2 在 Git 中设置用户名 1.2.1 为计算机上的每个存储库设置 ...

  8. java 上传 excel_Java对Excel表格的上传和下载处理方法

    Excel表格文件的上传和下载,java中涉及到文件肯定会有io流的知识. 而excel文件就要涉及到poi技术,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为 ...

  9. android导入github项目,上传Android项目至github的解析

    这是一个新的系列的文章,github项目,主要讲解了自己的github项目开源实践,github项目解析等. 本文主要讲解了如何将自己的android项目上传至github,相信大家平时在开发过程中为 ...

最新文章

  1. Python+OpenCV 图像处理系列(3)—— 画线、矩形、画圆、画椭圆、画多边形
  2. u-charts 曲线图中间有部分没数据,导致点和点无法连成线的问题解决
  3. Spring MVC 中使用 Google kaptcha 验证码
  4. js弹框带传值父窗口给子框_JavaScript实现弹出子窗口并传值给父窗口
  5. MATLAB应用实战系列(五十二)-Excel数据的读取
  6. 成功解决ModuleNotFoundError: No module named 'dataset'
  7. java 工厂方法模式_Java中的工厂方法模式
  8. plsql轻量版存储过程和存储函数
  9. python打开文件中文名_windows下Python打开包含中文路径名文件
  10. 一个数据科学家需要哪些核心工具包?
  11. js <->java 时区处理
  12. [转载] Sublime Text 3 插件 ClangFormat 格式化 C/C++版
  13. vue.js开发环境部署
  14. HTML5尝鲜(1):使用aduio标签打造音乐播放器
  15. 【王佩丰】PowerPoint2010视频教程 1
  16. 使用 matlab 数字图像处理(三)—— 实现图像的旋转(不使用 imrotate)
  17. 关闭webstorm提示 empty tag doesn't work in some browsers
  18. Microsoft Store连不上网解决办法
  19. unreal无损音乐百度云_嵐-IN THE SUMMER[FLAC]
  20. 【Flink】搭建单机环境

热门文章

  1. Microdata Wordpress,WORDPRESS使用微数据
  2. 1.3 项目经理的知识和技能
  3. 计算机小学期实践报告,小学期计算机实践报告
  4. 用支付宝如何自己拍证件照?
  5. 算法基础14 —— 图论入门之弗洛伊德算法(Floyed + Dijkstra + Bellman-Ford + SPFA)
  6. 华为nova2自带计算机,华为Nova2 root图文教程 华为Nova2获取root权限的方法
  7. Python中IO编程-文件读写
  8. 对一批编号为1~100,全部开关朝上(开)的灯进行以下操作:凡是1的倍数反方向拨一次开关;2的倍数反方向又拨一次开关;3的倍数反方向又拨一次开关……问:最后为关熄状态的灯的编号。
  9. 使用unity制作的一款生存类游戏demo(一)
  10. 计算机系统结构 外文,计算机系统结构外文文献 计算机系统结构参考文献怎么写...