1 回答
TA贡献1833条经验 获得超4个赞
我决定查看request.Body,似乎通过将其添加*/*到 API 网关二进制媒体类型,现在即使请求也是编码的,你看第一个字母确实是eas消息说。
所以我改变了这个:
// 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
}
对此:
// 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
}
从我在网上看到的你也可以改变这个:
rawIn := json.RawMessage(b64String)
bodyBytes, err := rawIn.MarshalJSON()
对此:
[]byte(b64String)
当我现在执行 CURL 请求并将其输出到文件时,我会正确地获得 PDF。
- 1 回答
- 0 关注
- 86 浏览
添加回答
举报