微信小程序服务器请求post,微信小程序使用HTTP请求_绕过HTTPS_云函数 request-promise get、post...

request-promise GET 请求

1、云函数中

> `云函数的console.log();只能在云函数的日志中查看,不会打印到控制台上,以为云函数不是本地`// 云函数入口文件

const cloud = require('wx-server-sdk')

//引入request-promise用于做网络请求

var rp = require('request-promise');

cloud.init({

env: cloud.DYNAMIC_CURRENT_ENV

})

// 云函数入口函数

exports.main = async (event, context) => {

let url = event.url;

// console.log('前端参数');

// console.log(event);

if(url == null || url == undefined ){

return 'URL不存在'

}else{

return await rp(url)

.then(function (res){

return res

})

.catch(function (err){

return '请求失败'

});

}

}

小程序js中wx.showLoading({

title: '加载中',

mask: true

});

var that = this;

wx.cloud.callFunction({

name: 'HttpGetNotepad',//你的云函数名称

data: {

//对于get请求我们的参数可以直接拼接在url?后面,多个参数使用 & 了解 如:url?a=1&b=1 我这里是使用 RESTful 风格的URL

url: 'http://ip或者域名:端口/notepad/'+app.globalData.openid

}

}).then( (res)=>{

// console.log(res);

var result = JSON.parse(res.result);

if(result.code == 200){

that.setData({

noepadInfo: result.data

})

}else{

wx.showToast({

title: '服务器错误',

duration: 2000

});

// wx.hideLoading();

}

wx.hideLoading();

}).catch( (res)=>{

// console.log(res);

wx.showToast({

title: '服务器断开',

duration: 2000

});

wx.hideLoading();

})

springboot后端@GetMapping("/notepad/{opendId}")

public Result getUserContent(@PathVariable("opendId") String opendId){

List notepadByOpendId = user_service.findNotepadByOpendId(opendId);

return Result.success(notepadByOpendId);

}

request-promise POST 请求

这一部分是个重点,有两种传递参数的方式

1、 使用form表单传递参数

云函数// 云函数入口文件

const cloud = require('wx-server-sdk')

//引入request-promise用于做网络请求

var rp = require('request-promise');

cloud.init({

env: cloud.DYNAMIC_CURRENT_ENV

})

// 云函数入口函数

exports.main = async (event, context) => {

// console.log(event);

let url = event.url;

if(url == null || url == undefined ){

return 'URL不存在'

}else{

return await rp({

url: url,

method: "POST",

json: true,

form: {

openId: event.openId,

content: event.content,

date: event.date,

startAddress: event.startAddress,

startPoint: event.startPoint,

endAddress: event.endAddress,

endPoint: event.endPoint,

startTime: event.startTime,

endTime: event.endTime,

beforTime: event.beforTime,

remind: event.remind

},

headers: {

//"content-type": "application/json",

"content-Type": "application/x-www-form-urlencoded; charset=UTF-8",

},

})

.then(function (res){

return res

})

.catch(function (err){

return '请求失败'

});

}

}

小程序js调用//发送请求到服务器

//这只是为了用户友好性做的显示 loading

wx.showLoading({

title: '保存中',

mask: true

})

wx.cloud.callFunction({

name: 'HttpAddNotepad',//你的云函数名称

data: {

// url: 'http://lw.free.idcfengye.com/notepad',

url: 'http://ip或者域名/notepad',

openId: app.globalData.openid,

content: this.data.zhuti,

date: this.data.date,

startAddress: this.data.startAddress,

startPoint: this.data.startPoint,

endAddress: this.data.endAddress,

endPoint: this.data.endPoint,

startTime: this.data.timeStart,

endTime: this.data.timeEnd,

beforTime: this.data.tiqian,

remind: (this.data.flag?1:0)

}

}).then( (res)=>{

// console.log(res);

if(res.result.code == 200 || res.result.data >0){

wx.showToast({

title: '保存成功',

duration: 1000

});

//返回页面

setTimeout(function () {

wx.navigateBack({

delta: 1

})

}, 1000)

}else{

wx.showToast({

title: '保存失败',

duration: 2000

});

// wx.hideLoading();

}

}).catch( (res)=> {

// console.log(res);

wx.showToast({

title: '保存失败',

duration: 2000

});

// wx.hideLoading();

})

springboot后端@PostMapping("/notepad")

//这里不能使用 @RequestBody 接收数据,只能是自动入参

public Result addUserNotepad( User_Notepad notepad ) throws Exception{

JobAndTrigger jt = null;

if(notepad.getRemind() == 1 && notepad.getBeforTime()!=null && notepad.getStartTime()!=null){

jt = user_service.addSendJob(notepad);

}

//数据入库

notepad.setJt(jt);

int row = user_service.insertUseNotepad(notepad);

return Result.success("添加成功",notepad.getId());

}

2、使用body传递参数

云函数// 云函数入口文件

const cloud = require('wx-server-sdk')

//引入request-promise用于做网络请求

var rp = require('request-promise');

cloud.init({

env: cloud.DYNAMIC_CURRENT_ENV

})

// 云函数入口函数

exports.main = async (event, context) => {

let url = event.url;

let data = event.info;

// console.log(data);

if(url == null || url == undefined ){

return 'URL不存在'

}else{

return await rp({

url: url,

method: "POST",

json: true,

body: data,//这里就是使用的json格式的数据

headers: {

"content-Type": "application/json",

// "content-Type": "application/x-www-form-urlencoded; charset=UTF-8",

// 'User-Agent': 'Request-Promise'

// "token": event.token

},

})

.then(function (res){

return res

})

.catch(function (err){

return '请求失败'

});

}

}

小程序js调用//构造数据 数据可以在 调用云函数的data中写,这里是个人风格这么写,没有强制要求

var info =

{

id: this.data.notepadInfo.id,

openId: app.globalData.openid,

content: this.data.zhuti,

date: this.data.date,

startAddress: this.data.startAddress == this.data.notepadInfo.startAddress?null:this.data.startAddress,

startPoint: this.data.startPoint == this.data.notepadInfo.startPoint?null:this.data.startPoint,

endAddress: this.data.endAddress == this.data.notepadInfo.endAddress?null:this.data.endAddress,

endPoint: this.data.endPoint == this.data.notepadInfo.endPoint?null:this.data.endPoint,

startTime: this.data.timeStart,

endTime: this.data.timeEnd,

beforTime: this.data.tiqian,

remind: (this.data.flag?1:0),

}

// console.log(info);

wx.cloud.callFunction({

name: 'HttpUpdateRemind',

data: {

url: 'http://ip或者域名/upnotepad',

info: info //json格式的数据

}

}).then( (res)=>{

// console.log(res);

if(res.result.code == 200 || res.result.data >0){

wx.showToast({

title: '修改成功',

duration: 1000

});

//返回页面

setTimeout(function () {

wx.redirectTo({

url: '/pages/myNotepad/myNotepad'

})

}, 1000)

}else{

wx.showToast({

title: '修改失败',

duration: 2000

});

// wx.hideLoading();

}

}).catch( (res)=> {

// console.log(res);

wx.showToast({

title: '修改失败',

duration: 2000

});

// wx.hideLoading();

})

sprongboot后端@PostMapping("/remind/{flag}")

//这里就用 @RequestBody接收参数

public Result updateRemind(@PathVariable("flag") boolean flag, @RequestBody User_Notepad notepad ) throws Exception{

JobAndTrigger jt = null;

if(notepad!=null && flag){

jt = user_service.addSendJob(notepad);

notepad.setJt(jt);

//            System.out.println(jt);

notepad.setRemind(1);

}else if(notepad!=null && !flag && notepad.getJt()!=null && (!StringUtils.isEmpty(notepad.getJt().getJobName())) ){

jt = quartzService.deleteJob(notepad.getJt());

notepad.setJt(jt);

//            System.out.println(jt);

notepad.setRemind(0);

}

//数据入库

int res = user_service.updateRemind(notepad);

return Result.success("修改成功",notepad);

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是电视光端机?电视光端机是怎么分类的?

现如今,随着国内通信网络的发展,电视光端机应用的监控范围也越来越广。在高速公路、银行、电力、电信等的监控领域都要求对视频信号进行远程的传输,目前主要的解决方法是利用光端机将视频信号转化为数字信号通过光纤进行传输。那么&#xff0…

q7goodies事例_Java 8 Friday Goodies:Lambda和排序

q7goodies事例在Data Geekery ,我们喜欢Java。 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 我们已经写了一些关于Java 8好东西的博客 ,现在我们觉得是时候开始一个…

mysql存储过程语法 if_mysql存储过程语法 if

MySql存储过程MySQL 存储过程是从 MySQL 5.0 开始增加的新功能。存储过程的优点有一箩筐。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。特别…

服务器突然关机的操作系统日志,一台R410 服务器不定时宕机,系统日志只有“上一次系统是意外关闭”...

R410环境操作系统 windows server 2008 r2 (一开始是windows server 2003)两个CPU:E5504内存:64G (4条16GB)故障现象:一开始运行windows server 2003也是不定时宕机,后由于业务需要更换为windows server 2008 r2还是不定时宕机&am…

什么是模拟量光端机?模拟光端机品牌有哪些?

模拟光端机采用了 PFM 调制技术实时传输图象信号。发射端将模拟视频信号先进行 PFM 调制后,再进行电-光转换,光信号传到接收端后,进行光电转换,然后进行 PFM 解调,恢复出视频信号。由于采用了PFM 调制技术,…

使用Spring Boot 2通过OAuth2和JWT进行集中授权

本指南逐步介绍了使用Spring Boot 2创建集中式身份验证和授权服务器的过程,还将提供演示资源服务器。 如果您不熟悉OAuth2,建议您阅读此书。 先决条件 JDK 1.8 文本编辑器或您喜欢的IDE Maven 3.0 实施概述 对于这个项目,我们将通过Sprin…

什么是物理隔离?物理隔离光端机是什么?

什么是物理隔离? 物理隔离,是指采用物理方法将内网与外网隔离从而避免入侵或信息泄露的风险的技术手段。物理隔离主要用来解决网络安全问题的,尤其是在那些需要绝对保证安全的保密网,专网和特种网络与互联网进行连接时&#xff0c…

linux mysql make_二、linux-mysql -cmake方式安装mysql 5.5

1.安装解压cmake包cmake软件cd /home/oldboy/tools/tar xf cmake-2.8.8.tar.gzcd cmake-2.8.8./configure#CMake has bootstrapped. Now run gmake.gmakegmake installcd ../2.依赖包yum install ncurses-devel -y3.安装mysql创建用户和组groupadd mysqluseradd mysql -s /sbi…

【渝粤教育】国家开放大学2018年春季 7405-21T面向对象程序设计(本) 参考试题

科目编号:7405 座位号 2018-2019学年度第二学期期末考试 面向对象程序设计(本) 试题 2018年 7 月 一、单选题(本大题共10小题,每小题3分,共计30分) (★请考生务必将答案填入到下面对…

太极虚拟服务器,太极 中标 云服务器

太极 中标 云服务器 内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。云服务器组是对云服务器的一种逻辑划分,云服务器组…

【渝粤教育】国家开放大学2018年春季 8617-21T燃气仪表与自动化 参考试题

科目编号:8617 座位号 2017-2018学年度第二学期期末考试 燃气仪表与自动化 试题 2018年 7月 一、填空题(本大题共10空,每空3分,共计30分) 1.目前市场上比较著名的软件系统集成平台有 、 、及 。 2&#xf…

什么是自愈环网光端机?

对于光端机这块,相信大家都有所了解。但是,什么是自愈环网光端机呢?想必很多朋友对此不是很了解,相信大家可能会很感兴趣了解下自愈环网光端机吧。接下来就由飞畅科技的小编来为大家详细介绍下什么是自愈环网光端机吧,…

gui界面怎么分页_什么是用户界面和体验设计

本文译自 Mikos Philips 的 UI vs UX  —  A Guide to UI Design因为发现仍然有小伙伴跑来问我比较基础的专业划分问题,所以翻译了这篇科普文。——用户界面(UI, User Interface)设计是设计软件产品所涉及到的几个交叉学科之一。不论是用户…

【渝粤教育】国家开放大学2018年春季 8638-22T薪酬制度与薪酬管理 参考试题

科目编号:8638 座位号 2017-2018学年度第二学期期末考试 薪酬制度与薪酬管理 试题 2018年 7 月 一、单选题(本大题共10小题,每小题3分,共计30分) (★请考生务必将答案填入到下面对应序号的答题框中★&…

无忧无盘服务器,无忧网维无盘系统新手快速部署.doc

无忧网维无盘系统新手快速部署新手上路之无忧无盘系统快速部署无忧无盘系统支持控制台管理多台无盘服务器,进行远程操作统一管理。与其他的无盘系统不同,第一步需要新添加无盘服务器具体步骤:1) 添加无盘服务器??操作步骤1)? ?…

詹金斯搭建_与詹金斯一起连续交付Heroku

詹金斯搭建如果您安装了Jenkins Git插件,那么利用Jenkins并针对Heroku的连续交付管道的设置就非常简单。 通过此管道,对特定Git分支的更改将导致Heroku部署。 为了使此部署过程正常运行,您应该至少使用两个Git分支,因为您希望有一…

【渝粤教育】国家开放大学2018年春季 0025-21T数据结构 参考试题

编号:0025 座位号: 17-18学年第1学期期末考试 数据结构 试题 一、选择题:(每题4分,共20分) 1.假定一个顺序队列的队首和队尾指针分别为front和rear,存放该队列的数组长度为N&#…

工业交换机品牌选择时注意的事项介绍

杭州飞畅科技有限公司是一家致力于光纤传输设备、数据通信设备及网络接入设备为主的集研发、生产、销售和服务为一体的高新技术企业,公司自成立以来就开始研发生产安防通信产品,采用高稳定性的通信技术制造安防产品,使得安防产品的稳定性极高…

【渝粤教育】国家开放大学2018年春季 0675-21T中级财务会计(2) 参考试题

科目编号:0675 座位号 2017-2018学年度第二学期期末考试 中级财务会计(2) 试题 2018年 7 月 一、单选题(本大题共10小题,每小题3分,共计30分) (★请考生务必将答案填入到下面对应序…

使用Spring Boot和MongoDB构建一个反应式应用程序

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 如果您要处理大量流数据,反应式应用程序可让您更好地扩展。 它们是非阻塞…