开发者社区 > 云原生 > Serverless > 正文

函数计算这是怎么回事,怎么body变reposejson了?

函数计算这是怎么回事,怎么body变reposejson了?"{\"statusCode\":201,\"body\":\"NzIwOTE2ODA0NzI3MDM3NDMyMA==\",\"headers\":{\"Content-Type\":\"text/html; charset=utf-8\"},\"isBase64Encoded\":\"true\"}"
type ReposeBody struct {
StatusCode int16 json:"statusCode"
Body string json:"body"
Headers headers json:"headers"
IsBase64Encoded string json:"isBase64Encoded"
}
type headers struct {
ContentType string json:"Content-Type"
}
log.Printf("Signature is correct!")
log.Printf("remote Signture is: %s", event.QueryParameters.Signature)
log.Printf("local Signature is: %s", localSignature)
reposeStr := new(ReposeBody)
reposeStr.StatusCode = http.StatusCreated
reposeStr.Body = base64.StdEncoding.EncodeToString([]byte(event.QueryParameters.EchoStr))
reposeStr.Headers.ContentType = "text/html; charset=utf-8"
reposeStr.IsBase64Encoded = "true"
reposeByte, _ := json.Marshal(*reposeStr)
repose = string(reposeByte)
err = nil
log.Printf("repose: %s", repose)
return

展开
收起
三分钟热度的鱼 2024-03-13 19:50:01 54 0
2 条回答
写回答
取消 提交回答
  • 阿里云大降价~

    根据您提供的代码,函数计算的响应体(repose)被转换为了JSON格式。具体来说,ReposeBody结构体被序列化为JSON字符串,并赋值给repose变量。

    以下是代码中的关键部分:

    
    type ReposeBody struct {
        StatusCode int16     `json:"statusCode"`
        Body       string   `json:"body"`
        Headers    headers  `json:"headers"`
        IsBase64Encoded string `json:"isBase64Encoded"`
    }
    
    type headers struct {
        ContentType string `json:"Content-Type"`
    }
    
    // ...
    
    reposeStr := new(ReposeBody)
    reposeStr.StatusCode = http.StatusCreated
    reposeStr.Body = base64.StdEncoding.EncodeToString([]byte(event.QueryParameters.EchoStr))
    reposeStr.Headers.ContentType = "text/html; charset=utf-8"
    reposeStr.IsBase64Encoded = "true"
    
    reposeByte, _ := json.Marshal(*reposeStr)
    repose = string(reposeByte)
    

    在这段代码中,首先定义了两个结构体:ReposeBodyheaders。然后创建了一个ReposeBody类型的实例reposeStr,并为其字段赋值。接着使用json.Marshal()函数将reposeStr序列化为JSON字节数组,最后将字节数组转换为字符串并赋值给repose变量。

    所以,当函数执行完毕后,repose变量的值将是如下所示的JSON字符串:

    
    {
        "statusCode": 201,
        "body": "NzIwOTE2ODA0NzI3MDM3NDMyMA==",
        "headers": {
            "Content-Type": "text/html; charset=utf-8"
        },
        "isBase64Encoded": "true"
    }
    
    2024-03-16 08:55:15
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    这段代码是使用Go语言编写的,它定义了一个名为ReposeBody的结构体,用于处理函数计算(Function Compute)的响应。函数计算是一种云计算服务,允许用户在云端运行代码。

    在这段代码中,首先定义了两个结构体:ReposeBodyheadersReposeBody包含了状态码、响应体、响应头和是否进行Base64编码的信息。headers结构体包含了ContentType字段。

    接下来,代码创建了一个ReposeBody类型的实例reposeStr,并设置了其属性值。状态码设置为http.StatusCreated(即201),响应体将event.QueryParameters.EchoStr进行Base64编码后赋值给reposeStr.Body,响应头的ContentType设置为"text/html; charset=utf-8",并将IsBase64Encoded设置为"true"。

    然后,使用json.Marshal函数将reposeStr转换为JSON格式的字节数组,再将其转换为字符串赋值给repose变量。最后,打印出repose的值,并将其作为函数的返回值。

    2024-03-14 14:34:00
    赞同 1 展开评论 打赏
问答标签:
问答地址:
相关产品:

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载