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。
- 1 回答
- 0 關(guān)注
- 135 瀏覽
添加回答
舉報(bào)