java后台服务器向Nodejs客户端发送压缩包文件
时间:2019-12-23
本文章向大家介绍java后台服务器向Nodejs客户端发送压缩包文件,主要包括java后台服务器向Nodejs客户端发送压缩包文件使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
java代码:
Map map=new HashMap();
try { //获取本地文件转换成字符换 File file = new File(apppath);//"D:/upload/20191223095503_2.zip" FileInputStream inputstream = new FileInputStream(file);//本地文件的输入流 String fileStr = "";//内网传送数据,file的转byte的字符串 BASE64Encoder encoder = new BASE64Encoder(); while ((b = inputstream.read(temp)) != -1) { fileStr += encoder.encode(temp); } inputstream.close(); map.put("appFileStr",fileStr); } catch (IOException e) { e.printStackTrace(); } String result= HttpClientUtil.callHttpPost(ip,port,"reciveFile",map);//ip:客户端IP;port:客户端服务的端口;reciveFile:客户端服务接收文件流的接口;map:存放文件流;HttpClientUtil:是我们自己封装的发送http post请求的工具类;
Node.js客户端代码:
/** * Created by Administrator on 2019/12/23. *指尖敲打着世界 ----一个阳光而又不失帅气的少年!!!. */ var express=require('express'); /*引入*/ var bodyParser = require('body-parser'); var fs=require("fs"); var app=new express(); /*实例化*/ //配置body-parser中间件 // parse application/x-www-form-urlencoded//处理表单数据 app.use(bodyParser.urlencoded({ extended: false })) // parse application/json //处理json数据 app.use(bodyParser.json()); app.post('/reciveFile',function(req,res){ var app = new Buffer.from(req.body.appFileStr, 'base64'); fs.writeFileSync("D:/upload/writeFileTest.zip",app);//注意:writeFile写入的文件zip打不开,具体原因不明,同道高人如果知晓,希望能够指点一二 res.send({retMsg: '收到发送文件流请求,正在接收', retCode: "1"}); }) app.listen(8089);
附录HttpClientUtil代码:
package com.yxjr.common.utils; import net.sf.json.JSONObject; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import java.io.UnsupportedEncodingException; import java.util.Map; public class HttpClientUtil { //post提交调用方法 public static String callHttpPost(String hostIP, int port, String actionName, Map<String,String> paramsMap) throws UnsupportedEncodingException { JSONObject resultJSon = new JSONObject(); String callbackResult = ""; System.err.println("请求参数是: IP" + hostIP + " actionName:" + actionName + " params:" + paramsMap); HttpClient httpClient = new DefaultHttpClient(); StringBuilder url = new StringBuilder("http://"); if (hostIP != null && !"".equals(hostIP) && !"".equals(actionName) && actionName != null) { url.append(hostIP).append(":").append(String.valueOf(port)).append("/").append(actionName); } // if (hostIP != null && !"".equals(hostIP) && !"".equals(actionName) && actionName != null) { // url.append(hostIP).append(":").append(String.valueOf(port)).append("/") // .append(baseUrl).append("/").append(actionName); // } System.out.println(url); String str =""; if(paramsMap!=null && paramsMap.size()!=0){ str = JSONObject.fromObject(paramsMap).toString(); } System.err.println("请求参数为:"+ str); HttpPost httpPost = new HttpPost(url.toString()); StringEntity entity = new StringEntity(str, "utf-8"); //entity.setContentEncoding("utf-8"); entity.setContentType("application/json"); httpPost.setEntity(entity); try { HttpResponse response = httpClient.execute(httpPost); int statusCode = response.getStatusLine().getStatusCode(); String entityString = EntityUtils.toString(response.getEntity()); System.err.println("请求返回码为:"+ String.valueOf(statusCode)+" 返回结果为:" +entityString); if(statusCode==200 ){ callbackResult = entityString; }else{ resultJSon.put("retCode",-1); resultJSon.put("retMsg","请求异常,请检查请求内容"); resultJSon.put("resultCode",statusCode); callbackResult = resultJSon.toString(); } } catch (Exception e) { System.err.println("客户端连接异常:"+e.getMessage()); resultJSon.put("retCode",-2); resultJSon.put("retMsg","连接异常,请检查客户端机服务是否正常开启"); resultJSon.put("resultCode",500); callbackResult = resultJSon.toString(); e.printStackTrace(); } return callbackResult; } }
原文地址:https://www.cnblogs.com/luzhanshi/p/12084475.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- LeetCode 爬取官网所有题目和自己的最近题解
- 一张图实现3D人脸建模!这是中科院博士生入选ECCV的新研究 | 开源
- client-go 之 DeltaFIFO 实现原理
- KEDA-Kubernetes 中基于事件驱动的自动伸缩
- 更新 Kubernetes APIServer 证书
- 0810-5.15.1-Impala执行invalidate metadata异常分析
- 笔记日记debug,推荐这个插件里的模板
- 我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。
- sklearn 模型的保存与加载
- R:如何使用RMarkdown渲染中文pdf报告
- 图解 SQL,这也太形象了吧!
- 用python爬取前程无忧网,看看我们是否真的“前程无忧”?
- 超硬核的 Python 数据可视化教程!
- Spark Core项目实战 | Top10 热门品类
- Spark Core项目实战 | 页面单跳转化率统计