第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Golang AWS API Gateway 尋找值開(kāi)頭的無(wú)效字符“e”

Golang AWS API Gateway 尋找值開(kāi)頭的無(wú)效字符“e”

Go
慕尼黑8549860 2023-04-24 15:53:30
我正在嘗試創(chuàng)建一個(gè)連接到 lambda 的 API 網(wǎng)關(guān),它使用 handlebars 解析 HTML 模板,然后返回它,但是當(dāng)我在本地運(yùn)行它時(shí),甚至在使用 AWS 的測(cè)試 url 上運(yùn)行時(shí),我都收到了這個(gè)錯(cuò)誤。{"errorMessage": "invalid character 'e' looking for beginning of value","errorType": "SyntaxError"}這是我的 SAM 模板AWSTemplateFormatVersion: "2010-09-09"Transform: AWS::Serverless-2016-10-31Description: data-template-rendererParameters:  Stage:    Type: String    AllowedValues:    - dev    - staging    - production    Description: environment valuesResources:  # Defining the API Resource here means we can define the stage name rather than  # always being forced to have staging/prod. Also means we can add a custom domain with  # to the API gateway within this template if needed. Unfortunately there is a side effect  # where it creates a stage named "Stage". This is a known bug and the issue can be  # found at https://github.com/awslabs/serverless-application-model/issues/191  DataTemplateRendererApi:    Type: AWS::Serverless::Api    Properties:      Name: !Sub "${Stage}-data-template-renderer"      StageName: !Ref Stage      DefinitionBody:        swagger: "2.0"        basePath: !Sub "/${Stage}"        info:          title: !Sub "${Stage}-data-template-renderer"          version: "1.0"        consumes:        - application/json        produces:        - application/json        - text/plain        - application/pdf        paths:          /render:            post:              x-amazon-apigateway-integration:                uri:                  "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RenderTemplate.Arn}/invocations"                httpMethod: POST                type: aws_proxy        x-amazon-apigateway-binary-media-types:        - "*/*"下面是我用于 Lambda 的代碼。請(qǐng)?jiān)徦赡懿皇悄?jiàn)過(guò)的最好的 Golang 代碼,但我是 Golang 的初學(xué)者,因?yàn)槲抑饕且幻?PHP 開(kāi)發(fā)人員,但我工作的公司正在創(chuàng)建很多 Golang lambda,所以我開(kāi)始學(xué)習(xí)它。
查看完整描述

1 回答

?
瀟瀟雨雨

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊

我決定查看request.Body,似乎通過(guò)將其添加*/*到 API 網(wǎng)關(guān)二進(jìn)制媒體類(lèi)型,現(xiàn)在即使請(qǐng)求也是編碼的,你看第一個(gè)字母確實(shí)是eas消息說(shuō)。


所以我改變了這個(gè):


// Unmarshal json request body into a TemplateRendererRequest struct that mimics the json payload

    requestData := TemplateRendererRequest{}

    err := json.Unmarshal([]byte(request.Body), &requestData)

    if err != nil {

        return events.APIGatewayProxyResponse{

            Body: fmt.Errorf("Error: %s ", err.Error()).Error(),

            StatusCode: 400,

            Headers: map[string]string{

                "Content-Type": "text/plain",

            },

        }, err

    }

對(duì)此:


// Unmarshal json request body into a TemplateRendererRequest struct that mimics the json payload

    requestData := TemplateRendererRequest{}


    b64String, _ := base64.StdEncoding.DecodeString(request.Body)

    rawIn := json.RawMessage(b64String)

    bodyBytes, err := rawIn.MarshalJSON()

    if err != nil {

        return events.APIGatewayProxyResponse{

            Body: fmt.Errorf("Error: %s ", err.Error()).Error(),

            StatusCode: 400,

            Headers: map[string]string{

                "Content-Type": "text/plain",

            },

        }, err

    }


    jsonMarshalErr := json.Unmarshal(bodyBytes, &requestData)

    if jsonMarshalErr != nil {

        return events.APIGatewayProxyResponse{

            Body: fmt.Errorf("Error: %s ", jsonMarshalErr.Error()).Error(),

            StatusCode: 400,

            Headers: map[string]string{

                "Content-Type": "text/plain",

            },

        }, jsonMarshalErr

    }

從我在網(wǎng)上看到的你也可以改變這個(gè):


rawIn := json.RawMessage(b64String)

bodyBytes, err := rawIn.MarshalJSON()

對(duì)此:


[]byte(b64String)

當(dāng)我現(xiàn)在執(zhí)行 CURL 請(qǐng)求并將其輸出到文件時(shí),我會(huì)正確地獲得 PDF。


查看完整回答
反對(duì) 回復(fù) 2023-04-24
  • 1 回答
  • 0 關(guān)注
  • 135 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)