URL 域名不合法,请在 mp 后台配置后重试,微信小程序
<p style="box-sizing: border-box; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">在微信小程序进行网络通信,只能和指定的域名进行通信,微信小程序包括四种类型的网络请求。</p><ul style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; margin-left: 3em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;"><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;">普通HTTPS请求(wx.request)</p></li><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;">上传文件(wx.uploadFile)</p></li><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;">下载文件(wx.downloadFile)</p></li><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;">WebSocket通信(wx.connectSocket)</p></li></ul><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">这里以介绍<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">wx.request</code>,<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">wx.uploadFile</code>,<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">wx.dowloadFile</code>三种网络请求为主</p><h2 id="articleHeader0" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; font-weight: 500; line-height: 1.2; color: rgb(51, 51, 51); margin-top: 1.5em; font-size: 1.75em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238); padding-bottom: 10px;">设置域名</h2><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">要微信小程序进行网络通信,必须先设置域名,不然会出现错误:</p><blockquote style="box-sizing: border-box; padding: 10.5px 21px; margin-top: 1.5em; margin-bottom: 1.5em; border-left-width: 2px; border-left-style: solid; border-left-color: rgb(0, 154, 97); color: rgb(85, 85, 85); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px; background: rgb(246, 246, 246);"><h5 style="box-sizing: border-box; font-family: inherit; font-weight: 500; line-height: 1.2; color: inherit; margin-top: 1.5em; margin-bottom: 1.5em; font-size: 1em;">URL 域名不合法,请在 mp 后台配置后重试</h5></blockquote><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">需要在微信公众平台的小程序中设置域名。<br style="box-sizing: border-box;">在微信小程序的<a href="https://mp.weixin.qq.com/wxopen/devprofile" target="_blank" style="box-sizing: border-box; color: rgb(0, 154, 97); text-decoration: none; outline: 0px; background: transparent;">设置界面</a>可以看到设置选项:</p><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;"><img data-src="/img/remote/1460000007003243" src="https://segmentfault.com/img/remote/1460000007003243" style="box-sizing: border-box; border: 1px solid rgb(221, 221, 221); vertical-align: middle; max-width: 100%; position: static !important; padding: 3px; cursor: pointer; display: inline;"></p><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">选择<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">开发设置</code>:</p><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;"><img data-src="/img/remote/1460000007003244" src="https://segmentfault.com/img/remote/1460000007003244" style="box-sizing: border-box; border: 1px solid rgb(221, 221, 221); vertical-align: middle; max-width: 100%; position: static !important; padding: 3px; cursor: pointer; display: inline;">可以看到服务器设置:</p><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;"><img data-src="/img/remote/1460000007003245" src="https://segmentfault.com/img/remote/1460000007003245" style="box-sizing: border-box; border: 1px solid rgb(221, 221, 221); vertical-align: middle; max-width: 100%; position: static !important; padding: 3px; cursor: pointer; display: inline;">在这里可以设置对应四种网络访问的域名,每一种类型的网络请求需要设置一个域名,注意如果在这里设置域名为<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">https://example.com/api/</code>,那么<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">https://example.com/api</code>是无法调用的,必须加上后面<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">/</code>。</p><h2 id="articleHeader1" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; font-weight: 500; line-height: 1.2; color: rgb(51, 51, 51); margin-top: 1.5em; font-size: 1.75em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238); padding-bottom: 10px;">http请求</h2><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">使用<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">wx.request</code>可以发起一个http请求,一个微信小程序被限制为<span style="box-sizing: border-box; font-weight: 700;">同时只有5个网络请求</span>。</p><pre class="hljs javascript" style="box-sizing: border-box; overflow: auto; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; padding: 1em; margin-bottom: 1.5em; line-height: 1.3; word-break: break-all; color: rgb(101, 123, 131); border: none; border-radius: 3px; max-height: 35em; position: relative;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 1em; color: inherit; border-radius: 0px; white-space: inherit; overflow-wrap: normal; background: none;"><span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(133, 153, 0);">function</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(38, 139, 210);">queryRequest</span><span class="hljs-params" style="box-sizing: border-box;">(data)</span></span>{wx.request({
url:<span class="hljs-string" style="box-sizing: border-box; color: rgb(42, 161, 152);">"https://example.com/api/"</span>,
data:data,
header:{
<span class="hljs-comment" style="box-sizing: border-box; color: rgb(147, 161, 161);">// "Content-Type":"application/json"</span>
},
success:<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(133, 153, 0);">function</span><span class="hljs-params" style="box-sizing: border-box;">(res)</span></span>{
<span class="hljs-built_in" style="box-sizing: border-box; color: rgb(38, 139, 210);">console</span>.log(res.data)
},
fail:<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(133, 153, 0);">function</span><span class="hljs-params" style="box-sizing: border-box;">(err)</span></span>{
<span class="hljs-built_in" style="box-sizing: border-box; color: rgb(38, 139, 210);">console</span>.log(err)
}
})
}</code></pre><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">上面的代码会发送一个http get请求,然后打印出返回的结果。其中的参数也比较容易理解。</p><ul style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; margin-left: 3em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;"><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">url</code> 服务器的url地址</p></li><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">data</code> 请求的参数可以采用String <code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">data:"xxx=xxx&xxx=xxx"</code>的形式或者Object <code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">data:{"userId":1}</code>的形式</p></li><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">header</code> 设置请求的header</p></li><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">success</code> 接口成功的回调</p></li><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">fail</code> 接口失败的回调</p></li></ul><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">另外还有两个参数没有在代码里:</p><ul style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; margin-left: 3em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;"><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">method</code> http的方法,默认为GET请求</p></li><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">complete</code> 调用接口结束之后的回调,无论成功或者失败该接口都会被调用</p></li></ul><h2 id="articleHeader2" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; font-weight: 500; line-height: 1.2; color: rgb(51, 51, 51); margin-top: 1.5em; font-size: 1.75em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238); padding-bottom: 10px;">上传文件</h2><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">上传文件的api为<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">wx.uploadFile</code>,该api会发起一个<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">http post</code>请求,其中的<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">Content-type</code>为<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">multipart/form-data</code>。服务器端需要按照该<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">Content-type</code>类型接收文件,示例代码:</p><pre class="hljs javascript" style="box-sizing: border-box; overflow: auto; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; padding: 1em; margin-bottom: 1.5em; line-height: 1.3; word-break: break-all; color: rgb(101, 123, 131); border: none; border-radius: 3px; max-height: 35em; position: relative;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 1em; color: inherit; border-radius: 0px; white-space: inherit; overflow-wrap: normal; background: none;"><span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(133, 153, 0);">function</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(38, 139, 210);">uploadFile</span><span class="hljs-params" style="box-sizing: border-box;">(file,data)</span> </span>{
wx.uploadFile({
url: <span class="hljs-string" style="box-sizing: border-box; color: rgb(42, 161, 152);">'http://example.com/upload'</span>,
filePath: file,
name: <span class="hljs-string" style="box-sizing: border-box; color: rgb(42, 161, 152);">'file'</span>,
formData:data,
success:<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(133, 153, 0);">function</span><span class="hljs-params" style="box-sizing: border-box;">(res)</span></span>{
<span class="hljs-built_in" style="box-sizing: border-box; color: rgb(38, 139, 210);">console</span>.log(res.data)
},
fail:<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(133, 153, 0);">function</span><span class="hljs-params" style="box-sizing: border-box;">(err)</span></span>{
<span class="hljs-built_in" style="box-sizing: border-box; color: rgb(38, 139, 210);">console</span>.log(err)
}
})
}</code></pre><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">其中的<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">url</code>,<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">header</code>,<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">success</code>,<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">fail</code>以及<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">complete</code>和普通的http请求是一样的。<br style="box-sizing: border-box;">这里有区别的参数是:</p><ul style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; margin-left: 3em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;"><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">name</code>文件对应的key,服务器端需要通过<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">name</code>参数获取文件</p></li><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">formData</code> http请求中可以使用的其他参数</p></li></ul><h2 id="articleHeader3" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; font-weight: 500; line-height: 1.2; color: rgb(51, 51, 51); margin-top: 1.5em; font-size: 1.75em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238); padding-bottom: 10px;">下载文件</h2><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">下载文件的api为<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">wx.downloadFile</code>,该api会发起一个http get请求,并在下载成功之后返回文件的临时路径,示例代码:</p><pre class="hljs javascript" style="box-sizing: border-box; overflow: auto; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; padding: 1em; margin-bottom: 1.5em; line-height: 1.3; word-break: break-all; color: rgb(101, 123, 131); border: none; border-radius: 3px; max-height: 35em; position: relative;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 1em; color: inherit; border-radius: 0px; white-space: inherit; overflow-wrap: normal; background: none;"><span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(133, 153, 0);">function</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(38, 139, 210);">downloadFile</span><span class="hljs-params" style="box-sizing: border-box;">(url,typ,success)</span></span>{
wx.downloadFile({
url:url,
type:typ,
success:<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(133, 153, 0);">function</span><span class="hljs-params" style="box-sizing: border-box;">(res)</span></span>{
<span class="hljs-keyword" style="box-sizing: border-box; color: rgb(133, 153, 0);">if</span>(success){
success(res.tempFilePath)
}
},
fail:<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(133, 153, 0);">function</span><span class="hljs-params" style="box-sizing: border-box;">(err)</span></span>{
<span class="hljs-built_in" style="box-sizing: border-box; color: rgb(38, 139, 210);">console</span>.log(err)
}
})
}</code></pre><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">其中的<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">url</code>,<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">header</code>,<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">fail</code>,<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">complete</code>和<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">wx.uploadFile</code>的参数使用是一致的,其中有区别的参数是:</p><ul style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; margin-left: 3em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;"><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">type</code>:下载资源的类型,用于客户端自动识别,可以使用的参数<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">image/audio/video</code></p></li><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">success</code>:下载成功之后的回调,以<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">tempFilePath</code>的参数返回文件的临时目录:<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">res={tempFilePath:'文件路径'}</code><br style="box-sizing: border-box;">下载成功后的是临时文件,只会在程序本次运行期间可以使用,如果需要持久的保存,需要调用方法<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">wx.saveFile</code>主动持久化文件,实例代码:</p></li></ul><pre class="hljs javascript" style="box-sizing: border-box; overflow: auto; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; padding: 1em; margin-bottom: 1.5em; line-height: 1.3; word-break: break-all; color: rgb(101, 123, 131); border: none; border-radius: 3px; max-height: 35em; position: relative;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 1em; color: inherit; border-radius: 0px; white-space: inherit; overflow-wrap: normal; background: none;"><span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(133, 153, 0);">function</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(38, 139, 210);">svaeFile</span><span class="hljs-params" style="box-sizing: border-box;">(tempFile,success)</span></span>{
wx.saveFile({
tempFilePath:tempFile,
success:<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(133, 153, 0);">function</span><span class="hljs-params" style="box-sizing: border-box;">(res)</span></span>{
<span class="hljs-keyword" style="box-sizing: border-box; color: rgb(133, 153, 0);">var</span> svaedFile=res.savedFilePath
<span class="hljs-keyword" style="box-sizing: border-box; color: rgb(133, 153, 0);">if</span>(success){
success(svaeFile)
}
}
})
}</code></pre><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">使用<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">wx.saveFile</code>保存临时文件到本地,提供给小程序下次启动时使用,其中的参数:</p><ul style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; margin-left: 3em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;"><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">tempFilePath</code> 需要被保存文件的路径</p></li><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">success</code> 保存成功的回调,返回保存成功的路径,使用<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">res.savedFilePath</code>可以获取保存成功的路径</p></li><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">fail</code> 失败的回调</p></li><li style="box-sizing: border-box; margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0px;"><p style="box-sizing: border-box;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">complete</code>结束的回调</p></li></ul><h2 id="articleHeader4" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; font-weight: 500; line-height: 1.2; color: rgb(51, 51, 51); margin-top: 1.5em; font-size: 1.75em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238); padding-bottom: 10px;">超时的设置</h2><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">在<a href="http://www.jianshu.com/p/83fe02e417d0" target="_blank" style="box-sizing: border-box; color: rgb(0, 154, 97); text-decoration: none; outline: 0px; background: transparent;">微信小程序开发:MINA</a>中已经提到了在<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">app.js</code>中设置<code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; color: rgb(199, 37, 78); padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">networkTimeout</code>可以设置四种类型网络访问的超时时间:</p><pre class="hljs coffeescript" style="box-sizing: border-box; overflow: auto; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 0.93em; padding: 1em; margin-bottom: 1.5em; line-height: 1.3; word-break: break-all; color: rgb(101, 123, 131); border: none; border-radius: 3px; max-height: 35em; position: relative;"><code style="box-sizing: border-box; font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 1em; color: inherit; border-radius: 0px; white-space: inherit; overflow-wrap: normal; background: none;"><span class="hljs-string" style="box-sizing: border-box; color: rgb(42, 161, 152);">"networkTimeout"</span>:{
<span class="hljs-string" style="box-sizing: border-box; color: rgb(42, 161, 152);">"request"</span>: <span class="hljs-number" style="box-sizing: border-box; color: rgb(42, 161, 152);">10000</span>,
<span class="hljs-string" style="box-sizing: border-box; color: rgb(42, 161, 152);">"connectSocket"</span>: <span class="hljs-number" style="box-sizing: border-box; color: rgb(42, 161, 152);">10000</span>,
<span class="hljs-string" style="box-sizing: border-box; color: rgb(42, 161, 152);">"uploadFile"</span>: <span class="hljs-number" style="box-sizing: border-box; color: rgb(42, 161, 152);">10000</span>,
<span class="hljs-string" style="box-sizing: border-box; color: rgb(42, 161, 152);">"downloadFile"</span>: <span class="hljs-number" style="box-sizing: border-box; color: rgb(42, 161, 152);">10000</span>
}</code></pre><p style="box-sizing: border-box; margin-top: 1.5em; margin-bottom: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">这里设置的超时时间对应着四种类型的网络请求。</p><p style="box-sizing: border-box; margin-top: 1.5em; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">源代码请参考:<a href="https://github.com/jjz/weixin-mina/blob/master/api/api.js" target="_blank" style="box-sizing: border-box; color: rgb(0, 154, 97); text-decoration: none; outline: 0px; background: transparent;">https://github.com/jjz/weixin...</a></p><p></p> 这个资源不错。感谢楼主!……来自于捡代码论坛 这个资源不错。感谢楼主!……来自于捡代码论坛
页:
[1]