微信应用开发之http请求
凌雪 2018-09-19 来源 :网络 阅读 637 评论 0

摘要:本文将带你了解微信应用开发之http请求,希望本文对大家学微信有所帮助。

本文将带你了解微信应用开发之http请求,希望本文对大家学微信有所帮助。


   
   
   
    在微信小程序进行网络通信,只能和指定的域名进行通信,微信小程序包括四种类型的网络请求。
      普通HTTPS请求(wx.request)上传文件(wx.uploadFile)下载文件(wx.downloadFile)WebSocket通信(wx.connectSocket)
    这里以介绍wx.request,wx.uploadFile,wx.dowloadFile三种网络请求为主
   
    设置域名
   
    要微信小程序进行网络通信,必须先设置域名,不然会出现错误:
   
   
    URL 域名不合法,请在 mp 后台配置后重试
   
   
    需要在微信公众平台的小程序中设置域名。
    在微信小程序的设置界面可以看到设置选项:
   
   
    设置
   
   
    选择开发设置:
   
   
    开发设置
   
   
   
    可以看到服务器设置:
   
   
    服务器设置
   
   
   
      在这里可以设置对应四种网络访问的域名,每一种类型的网络请求需要设置一个域名,注意如果在这里设置域名为https://example.com/api/,那么https://example.com/api是无法调用的,必须加上后面/。
   
    http请求
   
    使用wx.request可以发起一个http请求,一个微信小程序被限制为同时只有5个网络请求。
    function queryRequest(data){          wx.request({          url:"https://example.com/api/",        data:data,        header:{           //   "Content-Type":"application/json"        },        success:function(res){            console.log(res.data)        },        fail:function(err){            console.log(err)        }       }) }
   
    上面的代码会发送一个http get请求,然后打印出返回的结果。其中的参数也比较容易理解。
    url 服务器的url地址data 请求的参数可以采用String data:"xxx=xxx&xxx=xxx"的形式或者Object data:{"userId":1}的形式header 设置请求的headersuccess 接口成功的回调fail 接口失败的回调
    另外还有两个参数没有在代码里:
    method http的方法,默认为GET请求complete 调用接口结束之后的回调,无论成功或者失败该接口都会被调用
    上传文件
   
    上传文件的api为wx.uploadFile,该api会发起一个http
     post请求,其中的Content-type为multipart/form-data。服务器端需要按照该Content-type类型接收文件,示例代码:
    function uploadFile(file,data) {      wx.uploadFile({        url:   '//example.com/upload',          filePath: file,        name:   'file',        formData:data,        success:function(res){            console.log(res.data)        },        fail:function(err){            console.log(err)        }       }) }
   
    其中的url,header,success,fail以及complete和普通的http请求是一样的。
    这里有区别的参数是:
    name文件对应的key,服务器端需要通过name参数获取文件formData http请求中可以使用的其他参数
    下载文件
   
    下载文件的api为wx.downloadFile,该api会发起一个http get请求,并在下载成功之后返回文件的临时路径,示例代码:
    function downloadFile(url,typ,success){      wx.downloadFile({          url:url,        type:typ,        success:function(res){            if(success){                  success(res.tempFilePath)              }        },        fail:function(err){            console.log(err)        }      })}
   
    其中的url,header,fail,complete和wx.uploadFile的参数使用是一致的,其中有区别的参数是:
    type:下载资源的类型,用于客户端自动识别,可以使用的参数image/audio/video
   
    success:下载成功之后的回调,以tempFilePath的参数返回文件的临时目录:res={tempFilePath:'文件路径'}
    下载成功后的是临时文件,只会在程序本次运行期间可以使用,如果需要持久的保存,需要调用方法wx.saveFile主动持久化文件,实例代码:
    function svaeFile(tempFile,success){    wx.saveFile({        tempFilePath:tempFile,        success:function(res){            var svaedFile=res.savedFilePath          if(success){              success(svaeFile)          }      }    })}
   
    使用wx.saveFile保存临时文件到本地,提供给小程序下次启动时使用,其中的参数:
   
   
    tempFilePath 需要被保存文件的路径
    success 保存成功的回调,返回保存成功的路径,使用res.savedFilePath可以获取保存成功的路径fail 失败的回调complete结束的回调
    超时的设置
   
    在微信小程序开发:MINA中已经提到了在app.js中设置networkTimeout可以设置四种类型网络访问的超时时间:
    "networkTimeout":{     "request": 10000,     "connectSocket": 10000,     "uploadFile": 10000,     "downloadFile": 10000}
   
    这里设置的超时时间对应着四种类型的网络请求。
 

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之微信频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程