1***@qq.com
1***@qq.com
  • 发布:2025-01-08 17:06
  • 更新:2025-01-08 17:36
  • 阅读:50

【报Bug】支付宝云入参后,return event,无数据返回,并且get请求时,form-data数据无法入参

分类:uniCloud

产品分类: uniCloud/支付宝小程序云

示例代码:

// 连接云数据库
const db = uniCloud.database();

module.exports = {
_before: function() { // 通用预处理器
// const httpInfo = this.getHttpInfo();
// console.log(httpInfo);
},

// 删除公告信息  delAnnouncement  
async delAnnouncement(event, context) {  
    // const data = event.queryStringParameters;  
    // const data = JSON.parse(event.queryStringParameters);  
    // let del = body;  
    // let res = await db.collection("announcement").doc(del).remove();  
    return event;  
},  

// 部分核心代码

操作步骤:

建立一个云对象,云对象代码以代码实例为主。

使用支付宝云,云对象进行URL化后,请求delAnnouncement方法时,通过apipost进行get请求,使用的是body下form-data,云对象运行日志无入参信息,空白,但是使用阿里云可以显示入参信息!!!

发送post请求时,云对象运行日志可以入参,但是使用return event或者return event.body依然无数据,同样阿里云可以,仅支付宝云不可以。

预期结果:

使用支付宝云,云对象进行URL化后,请求delAnnouncement方法时,通过apipost进行get请求,使用的是body下form-data,云对象显示入参信息!!!

实际结果:

使用支付宝云,云对象进行URL化后,请求delAnnouncement方法时,通过apipost进行get或者psot请求,使用的是body下form-data,云对象无入参信息!!!

bug描述:

建立一个云对象,云对象代码以代码实例为主。

使用支付宝云,云对象进行URL化后,请求delAnnouncement方法时,通过apipost进行get请求,使用的是body下form-data,云对象运行日志无入参信息,空白,但是使用阿里云可以显示入参信息!!!

发送post请求时,云对象运行日志可以入参,但是使用return event或者return event.body依然无数据,同样阿里云可以,仅支付宝云不可以。

阿里云云对象get日志:(图1请求)
请求入参: {
"args": {
"path": "/delAnnouncement",
"httpMethod": "GET",
"headers": {
"content-length": "288",
"cookie": "aliyungf_tc=6e15af622838f3d25f049a27dd257852844de167ac24d24b9eb45c9c5b0c5cae;acw_tc=ac11000117363246229457925ee86d1e6dbd48ecab15dca4b546cf9102ebb9",
"x5-uuid": "8cb42efec7d175010541aca3a6ce1c61",
"x-client-ip": "39.154.168.205",
"x-forwarded-for": "39.154.168.205, 47.111.193.92, 39.96.130.165",
"accept": "/",
"x-real-ip": "39.154.168.205",
"x-sinfo": "on",
"host": "fc-mp-1a2816d0-1d6c-46a8-a5a4-2e9be391bb32.next.bspapp.com",
"content-type": "multipart/form-data; boundary=--------------------------906451936686091124510637",
"x-forwarded-by": "172.28.195.29:80",
"cache-control": "no-cache",
"accept-encoding": "gzip, deflate, br",
"user-agent": "PostmanRuntime-ApipostRuntime/1.1.0"
},
"queryStringParameters": {
"q": "cc11111dsd111",
"qgvdfgfdgfg": "dfdsfssss"
},
"isBase64Encoded": false,
"body": ""
},
"requestId": "ac1cc31d1736326154032166027"
}
请求响应状态: success

支付宝云云对象get日志:(图2请求)
2025-01-08 16:57:11.326 [adminAnnouncement][SYSTEM][INFO][0a4b4c5717363266313245131235] reserve_instance_start: reserveFunctionInstance start
2025-01-08 16:57:11.335 [adminAnnouncement][SYSTEM][INFO][0a4b4c5717363266313245131235] reserve_instance_end: reserveFunctionInstance success; instanceName=316da974-ad53-42a9-abc3-2561a2fe1be4 ip=10.75.77.117
2025-01-08 16:57:11.335 [adminAnnouncement][SYSTEM][INFO][0a4b4c5717363266313245131235] call_function_start: call function start
2025-01-08 16:57:11.663 [adminAnnouncement][SYSTEM][INFO][0a4b4c5717363266313245131235] user_code_execution: 316da974-ad53-42a9-abc3-2561a2fe1be4,version: aa9bc0f0
2025-01-08 16:57:11.745 [adminAnnouncement][USER][INFO][0a4b4c5717363266313245131235] execute: 316da974-ad53-42a9-abc3-2561a2fe1be4,{
path: '/delAnnouncement',
httpMethod: 'GET',
headers: {
accept: '/',
'accept-encoding': 'gzip, deflate, br',
'cache-control': 'no-cache',
'content-length': '288',
'content-type': 'multipart/form-data; boundary=--------------------------348084099964761518606134',
service: 'adminAnnouncement',
'sofa-rpcid': '0a4b4c5717363266313245131235',
'sofa-traceid': '0a4b4c5717363266313245131235',
sofa_head_method_name: '/announcement/delAnnouncement',
'user-agent': 'PostmanRuntime-ApipostRuntime/1.1.0',
'x-djy-uuid': 'f8d18cf6-efe7-41e0-ba75-0f63a0ef5772',
'x-faas-context-bindconfigs': '{"NEED_AUTH":"false","NEED_SIGN":"false"}',
'x-faas-context-binddomain': 'env-00jxhew1a2ph.dev-hz.cloudbasefunction.cn',
'x-faas-context-bindpath': '/announcement',
'x-faas-runtime-call-context': '{"appId":"2021004182661748","traceId":"0a4b4c5717363266313245131235","rpcId":"0.1.2","requestId":"fcab599d-afe4-46a2-8c01-766d329b7ac8","eventType":"http"}',
'x-faas-source-type': 'httpDefault',
'x-forwarded-for': '39.154.168.205',
'x-forwarded-proto': 'https',
'x-real-ip': '39.154.168.205',
'x-stream-request-id': 'd1b91a70-3ac8-4cd4-856f-0b1fa5ca1309',
'x5-uuid': 'f8d18cf6-efe7-41e0-ba75-0f63a0ef5772'
},
queryStringParameters: {},
body: '',
isBase64Encoded: ''
}
2025-01-08 16:57:11.755 [adminAnnouncement][SYSTEM][INFO][0a4b4c5717363266313245131235] call_function_end: call function success

2025-01-08 17:06 负责人:无 分享
已邀请:
DCloud_uniCloud_CRL

DCloud_uniCloud_CRL

云对象无法通过event获取请求信息,应该使用 this.getHttpInfo获取。

  • 1***@qq.com (作者)

    使用 this.getHttpInfo 获取的内容,get请求已经无法入参,之前在预处理那里已经设置过了。


    云函数代码:

    // 删除公告信息 delAnnouncement

    async delAnnouncement(event, context) {

    // const data = event.queryStringParameters;

    // const data = JSON.parse(event.queryStringParameters);

    // let del = body;

    // let res = await db.collection("announcement").doc(del).remove();

    const httpInfo = this.getHttpInfo();

    return httpInfo;

    },

    2025-01-08 17:36

  • DCloud_uniCloud_CRL

    回复 1***@qq.com: get 请求无法设置body

    2025-01-08 20:22

1***@qq.com

1***@qq.com (作者)

使用 this.getHttpInfo 获取的内容,get请求无法入参

要回复问题请先登录注册