• 技术文章 >微信小程序 >小程序开发

    微信小程序开发之http请求

    高洛峰高洛峰2017-02-10 13:12:38原创1075
    在微信小程序进行网络通信,只能和指定的域名进行通信,微信小程序包括四种类型的网络请求:普通HTTPS请求(wx.request)、上传文件(wx.uploadFile)、下载文件(wx.downloadFile)、WebSocket通信(wx.connectSocket)。这里以介绍wx.request,wx.uploadFile,wx.dowloadFile三种网络请求为主。

    在微信小程序进行网络通信,只能和指定的域名进行通信,微信小程序包括四种类型的网络请求。

    这里以介绍wx.request,wx.uploadFile,wx.dowloadFile三种网络请求为主。

    设置域名

    要微信小程序进行网络通信,必须先设置域名,不然会出现错误:

    URL 域名不合法,请在 mp 后台配置后重试

    需要在微信公众平台的小程序中设置域名。

    在微信小程序的设置界面可以看到设置选项:

    微信小程序开发之http请求

    选择开发设置:


    .微信小程序开发之http请求

    可以看到服务器设置:

    微信小程序开发之http请求

    在这里可以设置对应四种网络访问的域名,每一种类型的网络请求需要设置一个域名,注意如果在这里设置域名为//m.sbmmt.com/,那么//m.sbmmt.com/是无法调用的,必须加上后面/。

    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请求,然后打印出返回的结果。其中的参数也比较容易理解。

    另外还有两个参数没有在代码里:

    上传文件

    上传文件的api为wx.uploadFile,该api会发起一个http post请求,其中的Content-type为multipart/form-data。服务器端需要按照该Content-type类型接收文件,示例代码:

    function uploadFile(file,data) {     wx.uploadFile({         url: 'http://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请求是一样的。

    这里有区别的参数是:

    下载文件

    下载文件的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的参数使用是一致的,其中有区别的参数是:

    下载成功后的是临时文件,只会在程序本次运行期间可以使用,如果需要持久的保存,需要调用方法wx.saveFile主动持久化文件,实例代码:

    function svaeFile(tempFile,success){     wx.saveFile({         tempFilePath:tempFile,         success:function(res){             var svaedFile=res.savedFilePath             if(success){                 success(svaeFile)             }         }     }) }

    使用wx.saveFile保存临时文件到本地,提供给小程序下次启动时使用,其中的参数:

    超时的设置

    在微信小程序开发:MINA中已经提到了在app.js中设置networkTimeout可以设置四种类型网络访问的超时时间:

    "networkTimeout":{    "request": 10000,    "connectSocket": 10000,    "uploadFile": 10000,    "downloadFile": 10000 }

    这里设置的超时时间对应着四种类型的网络请求。

    更多微信小程序开发之http请求相关文章请关注PHP中文网!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:微信 Http Web
    上一篇:微信小程序开发初体验 下一篇:微信小程序开发之MINA
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• 记录一次实践,看看小程序购物车动画怎么优化• 浅谈小程序确保每个页面都已登陆的方法• 浅析小程序中如何优雅地进行模块化处理?• 深入浅析小程序中的全局配置• 小程序中怎么对网络请求进行二次封装
    1/1

    PHP中文网