博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vert.x 文件上传Client
阅读量:7249 次
发布时间:2019-06-29

本文共 2761 字,大约阅读时间需要 9 分钟。

1. pom.xml

io.vertx
vertx-core
3.4.2
io.vertx
vertx-web-client
3.4.2
复制代码

2. Client1.java

import com.xiaoniu.db.Runner;import io.vertx.core.AbstractVerticle;import io.vertx.core.Future;import io.vertx.core.buffer.Buffer;import io.vertx.core.file.FileSystem;import io.vertx.core.json.JsonObject;import io.vertx.ext.web.client.HttpRequest;import io.vertx.ext.web.client.WebClient;import io.vertx.ext.web.client.WebClientOptions;import java.net.URLEncoder;import java.util.UUID;/** * 文件上传 Java 客户端 */public class Client1 extends AbstractVerticle {  // Convenience method so you can run it in your IDE  public static void main(String[] args) {    Runner.runExample(Client1.class);  }  @Override  public void start() throws Exception {    // 只需要修改下面五个参数即可    final String path = "C:\\Users\\sweet\\Desktop\\png\\Java图标 - 副本.png";    final String fileName = "Java图标副本.png";    final String reqURI = "/api/fileUpload?name="+ URLEncoder.encode(fileName, "UTF-8");    final String host = "127.0.0.1";    final Integer port = 7777;    // -------------------------    FileSystem fs = vertx.fileSystem();    String uuid = UUID.randomUUID().toString();    WebClient webClient = WebClient.create(vertx, new WebClientOptions().setMaxPoolSize(2));    Buffer buffer = Buffer.buffer();    buffer.appendString("--"+uuid+"\n");    String h = "Content-Disposition: form-data; name=\"file\"; filename=\""+fileName+"\"\r\nContent-Type: application/octet-stream\r\nContent-Transfer-Encoding: binary\r\n\r\n";    buffer.appendString(h);    Future
future = Future.future(); fs.readFile(path, future); future.setHandler(buffer1 -> { if (buffer1.succeeded()) { buffer.appendBuffer(buffer1.result()); buffer.appendString("\r\n--"+ uuid +"--\r\n"); HttpRequest
req = webClient.post(port, host, reqURI); req.putHeader("Content-Length", "" + buffer.length()); req.putHeader("Content-Type", "multipart/form-data; boundary="+uuid); req.sendBuffer(buffer, resp -> { if (resp.succeeded()) { System.out.println("resp : " + System.currentTimeMillis()); JsonObject jsonObject = resp.result().bodyAsJsonObject(); System.out.println(jsonObject.encodePrettily()); } else { resp.cause().printStackTrace(); } }); } else { buffer1.cause().printStackTrace(); } }); }}复制代码

3. Run Main方法

4. Runner.java

https://github.com/vert-x3/vertx-examples/blob/master/core-examples/src/main/java/io/vertx/example/util/Runner.java

转载地址:http://yohbm.baihongyu.com/

你可能感兴趣的文章
关于网卡上网问题
查看>>
2.27linux和windows互传文件 3.1 用户配置文件和密码配置文件 3.2 用户组管理
查看>>
mysql导入导出数据出现ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option...
查看>>
清除vista通知区域历史记录手动清除哦
查看>>
redmien使用技巧,按分派人分组显示问题,方便跟踪
查看>>
Project Server 2013新手入门 (五)配置用户登录
查看>>
linux下yum三种搭建方法
查看>>
VB.NET-QQ新闻弹窗样式图片制作工具
查看>>
iOS 7侧边栏菜单解决方案
查看>>
移动web开发框架研究
查看>>
Word 2013 发布51CTO博客
查看>>
byRef 与 byVal
查看>>
QTP对日前控件的处理
查看>>
ES6中的尾递归优化例子
查看>>
(寻求志同道合的兄弟)寻求eclipse插件开发能手
查看>>
斗地主算法的设计与实现(一)--项目介绍&如何定义和构造一张牌
查看>>
前端技术/前端冷知识集锦
查看>>
免费高清视频素材下载网站
查看>>
RGW Usage类解析
查看>>
mouseover、mouseout防止多次触发
查看>>