wx.request({
url: 'http://study7.cn/user/getFile.php?fid=753', //请求接口的地址,必须基于 https 协议
method:'GET', //请求的方式
data:{//发送到服务器的数据
},
success:(res)=>{//请求成功后的回调函数
console.log(res);
}
})
下面是网页数据!
要求做个输入框,用户输入对应网页数据的数字串时显示对应的下载地址!
比如:用户输入911100000000000显示网页数据里下方对应的下载地址!
网页的数据有很多,可能上百条!
如何做到直接调取对应下载地址呢?
直接上代码!不会写
http://study7.cn/user/getFile.php?fid=753
这个网址你能控制没有,小程序发布后是要验证域名的,不是需要自己服务器搭建代理获取上面url的数据才行。如果只是开发工具测试,要勾选不校验域名才行
<view style="padding: 20rpx;">
<input class="input" placeholder="输入内容" bindinput="getUrl" />
<view style="word-break: break-all;" wx:if="{{downLoadUrl}}">
下载地址:{{downLoadUrl}}
</view>
</view>
index.js
Page({
data: {
kv:{},
downLoadUrl:''
},
onLoad(){
wx.request({
url: 'http://study7.cn/user/getFile.php?fid=753',
method:'GET',
success:(res)=>{
let arr=res.data.split('\n'),kv={}
for(let i=0;i<arr.length;i+=2) kv[arr[i]]=arr[i+1];
this.setData({kv});
}
})
},
getUrl(e){
let key=e.detail.value,downLoadUrl=this.data.kv[key]||'';
this.setData({downLoadUrl})
}
})
来自NewBing和LP的编写:
这个问题可以通过将获取到的数据存储在一个对象(键值对)中,然后根据用户输入的数字串作为键来获取对应的下载地址来解决。这个对象可以在页面的data中定义,然后在请求成功的回调函数中更新。
在小程序页面的wxml文件中,可以添加一个输入框和一个按钮,输入框用于输入数字串,按钮用于提交输入的数字串并获取对应的下载地址。
首先,解析获取到的网页数据,并将它转换为一个对象,键是数字串,值是对应的下载地址。接着,当用户在输入框中输入数字串并点击按钮时,可以通过在对象中查找该数字串来获取对应的下载地址。
以下是具体的代码实现:
在页面的JS文件中:
Page({
data: {
inputVal: "", // 用户输入的数字串
downloadLinks: {}, // 存储数字串和对应的下载地址
downloadLink: "", // 用户输入的数字串对应的下载地址
},
onLoad: function (options) {
wx.request({
url: 'https://study7.cn/user/getFile.php?fid=753',
method:'GET',
success: (res) => {
let lines = res.data.split('\n');
let links = {};
for (let i = 0; i < lines.length; i += 2) {
links[lines[i]] = lines[i + 1];
}
this.setData({ downloadLinks: links });
}
});
},
inputChange: function(e) {
this.setData({ inputVal: e.detail.value });
},
getDownloadLink: function() {
let link = this.data.downloadLinks[this.data.inputVal];
if (link) {
this.setData({ downloadLink: link });
} else {
wx.showToast({
title: '没有找到对应的下载地址',
icon: 'none',
duration: 2000
});
}
}
});
在页面的WXML文件中:
<input type="text" placeholder="请输入数字串" bindinput="inputChange" />
<button bindtap="getDownloadLink">获取下载地址</button>
<p>下载地址:{{downloadLink}}</p>
这样,用户就可以输入数字串并点击按钮来获取对应的下载地址了。如果输入的数字串在获取到的数据中存在,那么下载地址会被显示出来,否则会弹出一个提示告诉用户没有找到对应的下载地址。
注意,微信小程序中的请求接口地址必须是https协议的,并且在小程序后台的“开发设置”中的“服务器域名”中进行了配置。在你的示例代码中,url是'http://study7.cn/user/getFile.php?fid=753%27%EF%BC%8C%E8%BF%99%E6%98%AFhttp%E5%8D%8F%E8%AE%AE%EF%BC%8C%E5%8F%AF%E8%83%BD%E4%BC%9A%E5%AF%BC%E8%87%B4%E8%AF%B7%E6%B1%82%E5%A4%B1%E8%B4%A5%E3%80%82%E5%9C%A8%E5%AE%9E%E9%99%85%E5%BC%80%E5%8F%91%E4%B8%AD%EF%BC%8C%E8%A6%81%E5%B0%86%E5%85%B6%E6%94%B9%E4%B8%BAhttps%E5%8D%8F%E8%AE%AE%EF%BC%8C%E5%B9%B6%E7%A1%AE%E4%BF%9D%E5%9C%A8%E5%B0%8F%E7%A8%8B%E5%BA%8F%E5%90%8E%E5%8F%B0%E8%BF%9B%E8%A1%8C%E4%BA%86%E9%85%8D%E7%BD%AE%E3%80%82
首先使用get请求抓取网页数据,然后用空格分割成数组对象,然后和用户输入的下载码进行比较,如果相等的话,获取相等元素的索引+1 就是实际资源的下载地址