2021-05-18 腾讯云函数调用

这里示例用post的方式发送数据,并在云函数获取数据
写了个helloword,代码如下:

exports.main = async (event, context) => {
    console.log(event)
    const obj = JSON.parse(event.body)
    return {
        result: 0,
        resInfo: 'Hello ' + obj.name
    }
};

这样我们就可以通过postman发送post请求访问,我是直接用python访问,代码如下:

#post请求提交用户信息到服务器

import urllib.request
import urllib.parse
import ssl
import json

context = ssl._create_unverified_context()

url = 'https://cloudbasedemo-9go8tl9mf682c3c7-1301583309.ap-guangzhou.app.tcloudbase.com/say-hello'
values = {
'name' : 'elikong',
'location' : 'shenzhen',
'language' : 'Python' }

data = json.dumps(values).encode('utf-8')
print(data)
req = urllib.request.Request(url, data=data)

with  urllib.request.urlopen(req, context=context) as response:
    html = response.read()
    print(html.decode("utf-8"))
    print(response.code)

在使用过程中由于开始错误的访问了body数据,把代码写成了:

JSON.parse(event[body])

导致json解析总是错误,后来发现只能写成

JSON.parse(event.body)

或者

JSON.parse(event['body'])

如果想使用云控制台上的测试模板-hello world事件模板,就需要改代码为下面的形式,就比较统一了

exports.main = async (event, context) => {
    console.log(event)
    let obj = null
    if(event.body != null){  
        obj = JSON.parse(event['body'])
    } else {
        obj = event
    }
    return {
        result: 0,
        resInfo: 'Hello ' + obj.name
    }
};

测试模板用:

{
    "name": "elikong"
}

你可能感兴趣的:(2021-05-18 腾讯云函数调用)