当前位置: 首页 > news >正文

高端网站优化公司wordpress安装权限管理

高端网站优化公司,wordpress安装权限管理,北京知名互联网公司排名,做网站能挣钱么前言 在服务端#xff0c;下载消息文件是一个重要的功能。它允许您从服务器端获取并保存聊天消息、文件等数据#xff0c;以便在本地进行进一步的处理和分析。本指南将指导您完成环信服务端下载消息文件的步骤。 环信服务端下载消息文件是指在环信服务端上#xff0c;通过调…前言 在服务端下载消息文件是一个重要的功能。它允许您从服务器端获取并保存聊天消息、文件等数据以便在本地进行进一步的处理和分析。本指南将指导您完成环信服务端下载消息文件的步骤。 环信服务端下载消息文件是指在环信服务端上通过调用相应的API接口从服务器端下载聊天消息、文件等数据的过程。因环信服务端保存的消息漫游是有时间限制有用户需要漫游全部的消息或者自己服务端做所有消息记录的备份。可以从环信服务端下载消息文件来进行解压读取消息文件内容进行存储到自己的服务端。 前提条件 已在环信即时通讯控制台 开通配置环信即时通讯 IM 服务。 注册环信即时通讯IM了解环信 IM REST API 的调用频率限制环信接口文档介绍 一、下载消息文件 以下将介绍如何通过环信接口获取到的URL来进行下载文件解压文件读取文件。 注 time参数 历史消息记录查询的起始时间。UTC 时间使用 ISO8601 标准格式为 yyyyMMddHH。例如 time 为 2018112717则表示查询 2018 年 11 月 27 日 17 时至 2018 年 11 月 27 日 18 时期间的历史消息。若海外集群为 UTC 时区需要根据自己所在的时区进行时间转换。 上图是环信官方文档中给出的获取历史消息记录响应示例。从示例中可以看出我们请求以后可以得到一个URL这个URL为消息文件的下载URL。 1、下载消息文件环信rest 接口请求代码如下 String url https://{{RestApi}}/{{org_name}}/{{app_name}}/chatmessages/2023122010; HttpHeaders headers new HttpHeaders(); headers.add(Content-Type,application/json); headers.add(Authorization,Bearer Authorization); MapString, String body new HashMap(); HttpEntityMapString, String entity new HttpEntity(body, headers); ResponseEntityMap response; try {response restTemplate.exchange(url, HttpMethod.GET, entity, Map.class);System.out.print(消息文件下载成功---response.toString()); } catch (Exception e) {System.out.print(消息文件下载失败---e.toString()); }2、消息文件下载通过请求环信下载历史消息文件接口获取到的URL 进行下载。 示例代码 String url ; String targetUrl ; download(url,targetUrl); /** * 根据url下载文件保存到filepath中 * * param url 文件的url * param diskUrl 本地存储路径 * return */ public static String download(String url, String diskUrl) {String filepath ;String filename ;try {HttpClient client HttpClients.createDefault();HttpGet httpget new HttpGet(url);// 加入Referer,防止防盗链 httpget.setHeader(Referer, url);HttpResponse response client.execute(httpget);HttpEntity entity response.getEntity();InputStream is entity.getContent();if (StringUtils.isBlank(filepath)){MapString,String map getFilePath(response,url,diskUrl);filepath map.get(filepath);filename map.get(filename);}File file new File(filepath);file.getParentFile().mkdirs();FileOutputStream fileout new FileOutputStream(file);byte[] buffer new byte[cache];int ch 0;while ((ch is.read(buffer)) ! -1) {fileout.write(buffer, 0, ch);}is.close();fileout.flush();fileout.close();} catch (Exception e) {e.printStackTrace();}return filename; }/** * 获取response要下载的文件的默认路径 ** param response* return */public static MapString,String getFilePath(HttpResponse response, String url, String diskUrl) {MapString,String map new HashMap();String filepath diskUrl;String filename getFileName(response, url);String contentType response.getEntity().getContentType().getValue();if(StringUtils.isNotEmpty(contentType)){// 获取后缀 String regEx .(.)$;Pattern p Pattern.compile(regEx);Matcher m p.matcher(filename);if (!m.find()) {// 如果正则匹配后没有后缀则需要通过response中的ContentType的值进行匹配 filename filename .gz;}else{if(filename.length()20){filename getRandomFileName() .gz;}}}if (filename ! null) {filepath filename;} else {filepath getRandomFileName();}map.put(filename, filename);map.put(filepath, filepath);return map; }/*** 获取response header中Content-Disposition中的filename值* param response * param url* return*/public static String getFileName(HttpResponse response,String url) {Header contentHeader response.getFirstHeader(Content-Disposition);String filename null;if (contentHeader ! null) {// 如果contentHeader存在 HeaderElement[] values contentHeader.getElements();if (values.length 1) {NameValuePair param values[0].getParameterByName(filename);if (param ! null) {try {filename param.getValue();} catch (Exception e) {e.printStackTrace();}}}}else{// 正则匹配后缀 filename getSuffix(url);}return filename; }/** * 获取随机文件名 * * return */ public static String getRandomFileName() {return String.valueOf(System.currentTimeMillis()); }/** * 获取文件名后缀 * param url * return */ public static String getSuffix(String url) {// 正则表达式“./(.)$”的含义就是被匹配的字符串以任意字符序列开始后边紧跟着字符“/” // 最后以任意字符序列结尾“()”代表分组操作这里就是把文件名做为分组匹配完毕我们就可以通过Matcher // 类的group方法取到我们所定义的分组了。需要注意的这里的分组的索引值是从1开始的所以取第一个分组的方法是m.group(1)而不是m.group(0)。 String regEx ./(.)$;Pattern p Pattern.compile(regEx);Matcher m p.matcher(url);if (!m.find()) {// 格式错误则随机生成个文件名 return String.valueOf(System.currentTimeMillis());}return m.group(1);}url为第一步中从环信下载历史消息文件接口中请求返回的url消息文件下载地址targetUrl 为下载的本地存储路径 下载以后从对应的路径下就可以看到所下载的文件。 3、消息文件解压下载完的文件是以.gz结尾的压缩文件需要对压缩文件进行解压 public static void unGzipFile(String gzFilePath,String directoryPath) {String ouputfile ;try {//建立gzip压缩文件输入流 FileInputStream fin new FileInputStream(gzFilePath);//建立gzip解压工作流 GZIPInputStream gzin new GZIPInputStream(fin);//建立解压文件输出流// ouputfile sourcedir.substring(0,sourcedir.lastIndexOf(.));// ouputfile ouputfile.substring(0,ouputfile.lastIndexOf(.)); FileOutputStream fout new FileOutputStream(directoryPath);int num;byte[] bufnew byte[1024];while ((num gzin.read(buf,0,buf.length)) ! -1) {fout.write(buf,0,num);}gzin.close();fout.close();fin.close();} catch (Exception ex){System.err.println(ex.toString());}return;}gzFilePath压缩文件路径 directoryPath加压到的文件目录路径 解压后的文件如下图所示 4、文件读取,将解压后的文件读取出来 FileInputStream inputStream null; try {inputStream new FileInputStream(/Users/liupeng/Downloads/download/1234567890);BufferedReader bufferedReader new BufferedReader(new InputStreamReader(inputStream));String str null;long i 0;while(true){try {if (!((str bufferedReader.readLine()) ! null)) break;} catch (IOException e) {e.printStackTrace();}JSONObject jo JSONObject.parseObject(str);System.out.println( i);System.out.println(消息id: jo.get(msg_id));System.out.println(发送id: jo.get(from));System.out.println(接收id: jo.get(to));System.out.println(服务器时间戳: jo.get(timestamp));System.out.println(会话类型: jo.get(chat_type));System.out.println(消息扩展: jo.getJSONObject(payload).get(ext));System.out.println(消息体: jo.getJSONObject(payload).getJSONArray(bodies).get(0));i ;if (i 100) break;}//close try {inputStream.close();bufferedReader.close();} catch (IOException e) {e.printStackTrace();}} catch (FileNotFoundException e) {e.printStackTrace(); }解析完以后日志打印如下 至此解析完以后可以将解析的数据进行存储。 相关文档 注册环信即时通讯IMhttps://console.easemob.com/user/register 环信IM集成文档https://docs-im-beta.easemob.com/document/ios/quickstart.html IMGeek社区支持https://www.imgeek.net/
http://www.dnsts.com.cn/news/14008.html

相关文章:

  • 买完网站怎么建设中国陕西省住房城乡建设厅官网
  • 备案 网站名称什么用公司的网站设计方案
  • 数据库做图书管理系统网站开发商城网站多少钱
  • 网站模板网站西安专业做网站公司
  • 做个普通的网站在上海做要多少钱专业建站公司报价
  • 导购网站怎么做电子商务网站建设下载
  • 盐城网站建设多少钱新开传奇网站180合击
  • 学习网站建设要报班吗科技网站公司
  • frontpage网站建设论文网络营销运营公司
  • 保定市最新消息今天网站做seo需要大量文章
  • 网站建设需要的一些技术在川航网站购票后怎么做
  • 镇江网站推广wordpress更新主题报错
  • 遵义网站推广企业展厅效果图
  • 怎么把文件发送到网站seo自然优化排名
  • 如何设计企业网站游戏推广平台代理
  • 企业网站制作的软件网站建设多少钱裙
  • 网站建设的价钱wordpress widget 模板
  • 心理学重点学科建设网站广西建设厅考试网站首页
  • 河北网站建设制作服务企业是什么
  • 外管局网站上做存量权益登记自媒体视频剪辑培训班
  • 宁波城乡建设网站网站建设具体工作总结
  • 怎么看网站空间多大做网站上的图片如何设定分辨率
  • 手机单页网站通用模板西安建设集团网站
  • 邯郸网站建设兼职网站做商城
  • 邯郸网站制作费用php论坛源码下载
  • 太原网站的公司更改wordpress主题
  • 南充企业网站建设创立网站
  • 帝国cms 网站地图标签玄武区网页设计培训
  • 建网上商城的第三方网站哪个好新冠死亡最新消息今天
  • 推广比较好的网站有哪些网站搭建运营