微信小程序:文本读写与网络请求

一、本地用户文件读写:

1.普通接口操作文件:

(1)写入文件内容:

const fm = wx.getFileSystemManager()   // 获取文件管理器
fm.writeFileSync(`${wx.env.USER_DATA_PATH}/文件名.txt`,  '文件内容', 'utf8')  //在本地用户目录创建文件(不存在时),并写入内容

(2)读取文件内容:

const fm = wx.getFileSystemManager() // 获取文件管理器
//1>同步方式读取:
try {
  const fileContent = fm.readFileSync(`${wx.env.USER_DATA_PATH}/文件名.txt`, 'utf8', 0)
  console.log("onLoad >> 读文件成功,文件内容: " + fileContent)
} catch(exception) {
  console.log('onLoad >> 读文件失败, 异常消息: ', exception)
}
//2>异步方式读取:
fm.readFile({filePath: `${wx.env.USER_DATA_PATH}/文件名.txt`, encoding: 'utf8',
  success(response) {
    console.log("onLoad >> 读文件成功,文件内容: " + response.data)
  },
  fail(exception) {
    console.log('onLoad >> 读文件失败, 异常消息: ', exception)
  }
})

2.FD接口操作文件(适用大量文件操作):

(1)写入文件内容:

const fm = wx.getFileSystemManager() // 获取文件管理器
var fd = fm.openSync({filePath: `${wx.env.USER_DATA_PATH}/文件名.txt`, flag: "w+"}) // 打开文件,a+为读取和追加写入方式打开、w+为读取和截断写入方式打开
var content = 'FD接口方式-文件内容'
fm.writeSync({data: content, fd: fd, encoding: 'utf8', length: content.length, position: 0}) // 写入文件内容
fm.closeSync({fd: fd}) // 关闭文件

(2)读取文件内容:

const fm = wx.getFileSystemManager() // 获取文件管理器
var arrayBuffer = new ArrayBuffer(1024);
//1>同步方式读取:
try {
  var fd = fm.openSync({filePath: `${wx.env.USER_DATA_PATH}/文件名.txt`, flag: "a+"}) // 打开文件,a+为读取和追加写入方式打开、w+为读取和截断写入方式打开
  fm.readSync({fd: fd,
    arrayBuffer: arrayBuffer,  //数据写入的缓冲区
    length: 1024               //读取的字节数,默认0
  }) // 读取文件内容
  var enc = new TextDecoder("utf-8");
  var fileContent = enc.decode(arrayBuffer) //将ArrayBuffer转为字符串
  console.log("onShow >> 读文件成功,文件内容: " + fileContent)
  fm.closeSync({fd: fd}) // 关闭文件
} catch(exception) {
  console.log('onShow >> 读文件失败, 异常消息: ', exception)
}
//2>异步方式读取:
fm.open({
  filePath: `${wx.env.USER_DATA_PATH}/文件名.txt`,
  flag: 'a+',
  success(response) {
    fm.read({
      fd: response.fd,
      arrayBuffer: arrayBuffer,
      length: 1024,
      success(response) {
        var enc = new TextDecoder("utf-8");
        var fileContent = enc.decode(arrayBuffer) //将ArrayBuffer转为字符串
        console.log("onShow >> 读文件成功,文件内容: " + fileContent)
      }
    })
  },
  fail(exception) {
    console.log('onShow >> 读文件失败, 异常消息: ', exception)
  }
})

二、网络请求:

配置服务器域名:

进入以下地址,在服务器域名 -> 点击修改按钮, 添加"request合法域名、uploadFile合法域名、downloadFile合法域名":

小程序

1.接口请求(POST/GET):

var doRequest = function (url, { isPost=true }) {
  console.log("开始接口请求 >>")
  wx.request({
    url: url, //请求URL
    data: { //请求参数
      key1: 'value1'
    },
    header: { //头字段
      'content-type': 'application/json'
    },
    method: isPost ? 'POST' : 'GET', //请求方法
    timeout: 15000, //超时时间
    enableHttp2: true, //开启HTTP2
    success(response) { //请求成功
      console.log("接口请求 response HTTP状态码: " + response.statusCode + "  数据: " + response.data)
      if (response.statusCode != 200) return
      //...解析返回的json数据
    },
    fail(response) { //请求失败
      console.log("接口请求 response 错误码: " + response.errno + "  错误信息: " + response.errMsg)
    }
  })
}

2.上传文件:

var doUploadFile = function (url, uploadFilePath) {
  console.log("开始上传文件 >>")
  wx.request({
    url: url, //请求URL
    filePath: uploadFilePath,  //待上传文件路径
    name: 'file', //与后端约定的上传文件key
    formData: { //请求参数
      key1: 'value1'
    },
    header: { //头字段
      'key1': 'value1'
    },
    timeout: 60000, //超时时间
    success(response) { //上传成功
      console.log("上传文件成功 HTTP状态码: " + response.statusCode + "  数据: " + response.data)
      if (response.statusCode != 200) return
      //...解析返回的json数据
    },
    fail(response) { //上传失败
      console.log("上传文件失败 错误信息: " + response.errMsg)
    }
  })
}

3.下载文件:

var doDownloadFile = function (url, saveFilePath) {
  console.log("开始下载文件 >>")
  wx.downloadFile({
    url: url, //请求URL
    filePath: saveFilePath,  //文件本地保存路径,例:wx.env.USER_DATA_PATH + "/a.jpeg"
    header: { //头字段
      'key1': 'value1'
    },
    timeout: 60000, //超时时间
    success(response) { //下载成功,文件路径为:http://usr/a.jpeg
      console.log("下载文件成功 HTTP状态码: " + response.statusCode + "  文件路径: " + saveFilePath)
      if (response.statusCode != 200) return
      //...处理下载完后的逻辑
    },
    fail(response) { //下载失败
      console.log("下载文件失败 错误信息: " + response.errMsg)
    }
  })
}

4.连接WebSocket:

var webSocket  = function (wsUrl) {
  console.log("开始连接WebSocket >>")
  wx.connectSocket({
    url: wsUrl,  //WebSocket地址
    header:{ //头字段
      'content-type': 'application/json'
    },
    protocols: ['protocol1'],  //子协议数组
    timeout: 60000,  //超时时间
    success(response) { //连接成功
      console.log("连接WebSocket成功 data: " + response.data)
    },
    fail(response) { //连接失败
      console.log("连接WebSocket失败 错误码: " + response.errno + "  错误信息: " + response.errMsg)
    }
  })
}

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 微信小程序开发教程 PDF是一份教你如何开发微信小程序的电子书籍。微信小程序是一种轻量级的应用程序,它们可以在微信中直接运行,与APP类似,但不需要下载和安装。微信小程序开发需要一定的前端知识和微信公众平台开发经验,学习微信小程序开发需要有一定的耐心和时间。 微信小程序开发教程PDF涵盖了从入门到进阶的内容,适合初学者和有一定经验的开发者。它包括了微信小程序的基本概念、开发工具、框架、组件库和API等内容,还涵盖了微信小程序的设计原则、权限管理、数据存储和优化技巧等。此外,它还提供了编程实例和项目案例,帮助开发者快速上手并熟练掌握微信小程序开发技能。 学习微信小程序开发有很多好处,可以帮助你开发出轻量级、高效的应用程序,提高你的编程技能和工作竞争力。如果你想成为一名优秀的微信小程序开发者,你需要不断学习和实践,掌握新的技术和工具,并建立你自己的开发风格和项目经验。 ### 回答2: 微信小程序是一种轻量级的应用程序,可以在微信客户端内部运行,并且不需要像普通应用程序一样需要下载和安装。微信小程序的用户体验良好,具有快速加载、易于发布和分享等特点,因此被广泛应用于社交媒体、电商、线下场景等领域。 想要开发微信小程序,您可以查阅微信小程序开发教程PDF,这是一份系统、详细且权威的教程资料,涵盖了微信小程序的开发流程、技术要点、开发工具、调试排错、上线发布等方面的内容,可以帮助您快速上手、快速开发微信小程序。 在学习微信小程序开发教程PDF时,您需要先了解HTML、CSS、JavaScript等相关基础知识,并掌握微信小程序开发的三个重要组成部分:WXML模板、WXSS样式和JavaScript代码。同时,您还需要掌握微信小程序开发的基本流程和工具,例如使用微信开发者工具进行开发、调试和发布微信小程序。 总的来说,学习微信小程序开发教程PDF需要一定的编程基础和实践经验,但不需要过多的技术经验,只要您有兴趣、有热情、有耐心,并且具备学习的动力,相信您一定可以掌握微信小程序的开发技能,并创造出更加有趣、实用的微信小程序作品。 ### 回答3: 微信小程序开发教程pdf是一本关于微信小程序开发的教程书。该书采用了全面系统的授课方式,通过积累自上到下、从零开始逐步实现微信小程序的开发,让读者能够更好地理解微信小程序的运行原理和开发技巧。 首先,该书对微信小程序的开发环境、工具和基本结构进行了介绍和讲解,为读者打下了坚实的基础。接着,书中详细讲解了小程序的各个组件,包括视图容器、页面渲染、数据绑定、事件处理等内容,并通过实例演示了如何在应用程序中使用这些组件。 同时,该书还介绍了微信小程序的开发规范和最佳实践,让读者能够更好地了解并掌握微信小程序的开发流程和开发技巧。另外,该书还包含了许多实例代码和详细的讲解,方便读者进行实战练习和调试。 总之,微信小程序开发教程pdf是一本系统全面、讲解详细、实例丰富的微信小程序开发教材,既适合初学者入门,也适合有一定基础的开发者提高技能。它不仅能够帮助读者掌握微信小程序开发的基础知识和技巧,还能够让读者了解到微信小程序开发市场的前景和未来趋势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值