php httputils,微信小程序的http请求封装详解

微信小程序 http请求封装

示例代码wx.request({

url: 'test.php', //仅为示例,并非真实的接口地址

data: {

x: '' ,

y: ''

},

method:'POST',

header: {

'content-type': 'application/json'

},

success: function(res) {

console.log(res.data)

},

fail: function( res ) {

fail( res );

}

})

以上为小程序的基本http请求代码,实际代码中如果每次这样来写是比较繁琐的,那我们就来做一下封装。

那代码中我们比较关注什么?

1.请求的参数,访问的接口

2.GET/POST...请求方式

3.请求参数统一处理(比如:加密、设置公共参数...)

4.请求成功返回的数据(比如:解密、抽离逻辑层数据)

5.请求失败反馈

我们不关注什么?

1.请求url(一般固定的配置在某个地方)

2.根据不同的接口规则做不同的请求参数(比如:参数加密等)

...

让我们代码实操

network.jsvar API_URL = 'http://localhost/loverule/api/api.php'

var requestHandler = {

params:{},

success: function(res){

// success

},

fail: function() {

// fail

},

}

//GET请求

function GET(requestHandler) {

request('GET',requestHandler)

}

//POST请求

function POST(requestHandler) {

request('POST',requestHandler)

}

function request(method,requestHandler) {

//注意:可以对params加密等处理

var params = requestHandler.params;

wx.request({

url: API_URL,

data: params,

method: method, // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT

// header: {}, // 设置请求的 header

success: function(res){

//注意:可以对参数解密等处理

requestHandler.success(res)

},

fail: function() {

requestHandler.fail()

},

complete: function() {

// complete

}

})

}

module.exports = {

GET: GET,

POST: POST

}

页面中调用(以GET请求为例)

//导入jsvar network = require("../../utils/network.js")

//写入参数

var params = new Object()

params.api_name = "api_user_login"

params.account = "hanqing"

params.password = "123456"

//发起请求

network.GET(

{

params: params,

success: function (res) {

console.log(res)

//拿到解密后的数据,进行代码逻辑

},

fail: function () {

//失败后的逻辑

},

})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Java后台微信小程序接口代码示例: 1. 配置微信小程序的appId和appSecret ```java String appId = "your_appId"; String appSecret = "your_appSecret"; ``` 2. 获取access_token ```java String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret=" + appSecret; String result = HttpUtils.sendGet(url); JSONObject jsonObject = JSONObject.parseObject(result); String access_token = jsonObject.getString("access_token"); ``` 3. 接收微信小程序的请求并返回数据 ```java @RequestMapping("/api") @ResponseBody public String doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取微信小程序传递过来的参数 String code = request.getParameter("code"); String encryptedData = request.getParameter("encryptedData"); String iv = request.getParameter("iv"); // 获取session_key String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appId + "&secret=" + appSecret + "&js_code=" + code + "&grant_type=authorization_code"; String result = HttpUtils.sendGet(url); JSONObject jsonObject = JSONObject.parseObject(result); String session_key = jsonObject.getString("session_key"); // 解密数据 String resultStr = AESUtil.decrypt(encryptedData, session_key, iv); JSONObject jsonUser = JSONObject.parseObject(resultStr); // 业务逻辑处理 ... // 返回数据 JSONObject jsonResult = new JSONObject(); jsonResult.put("code", 0); jsonResult.put("message", "success"); jsonResult.put("data", data); return jsonResult.toString(); } ``` 此代码示例中,通过封装HttpUtils类发送HTTP请求获取access_token和session_key,并使用封装的AESUtil类对加密的用户数据进行解密。最后根据业务逻辑处理返回数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值