So *_*ins 9 amazon-web-services aws-lambda aws-api-gateway
所以我有这个 API 网关,它在 POST 上点击使用 AWS-PROXY 集成的 lambda。
我的请求类如下所示:
public class ApiGatewayProxyRequest {
private String resource;
private String path;
private String httpMethod;
private Map<String, String> headers;
private Map<String, String> queryStringParameters;
private Map<String, String> pathParameters;
private Map<String, String> stageVariables;
private Context context;
private String body;
private boolean isBase64Encoded;
... snip
}
Run Code Online (Sandbox Code Playgroud)
我正在通过 POST 请求发送文件的 API 网关,文件内容稍后可在我的 APIGatewayProxyRequest 的正文字段中使用,这一切都很好。
问题是我希望二进制数据进行 Base64 编码,并且所有非二进制数据保持原样。
因此,我向 API 网关的 BinaryMediaTypes 添加了多个二进制类型。这些文件(当正确设置 Content-Type 标头时)会导致文件在请求正文中正确编码为 base64。
现在我遇到的问题是:尽管 API 网关将文件正确编码为 base64,但请求中的 isBase64Encoded 字段从来都不是true,它总是被接收为 false。
知道为什么吗?根据文档,该字段应包含一个布尔标志,以指示适用的请求 Paylad 是否是 Base64 编码的。
https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
谢谢
| 归档时间: |
|
| 查看次数: |
6190 次 |
| 最近记录: |