无法使用API​​网关和招摇工具下载PDF

时间:2018-10-25 17:48:25

标签: amazon-web-services aws-lambda swagger aws-api-gateway

我使用Java创建了一个lambda函数,该函数向REST API发出请求,并获取base64编码并从lambda返回的字节数组

@Override
public Object handleRequest(final Request<Object> input,final Context 
context)
   //construct request
   Base64 codec = new Base64();
   final HttpResponse response = client.execute(request);
   byte[] pdfResponse = 
   IOUtils.toByteArray(resonse.getEntity().getContent());
   return codec.encode(pdfRespnse); //returns encoded byte array

在swagger(2.0)中,我提到过产生:[application / pdf]在根级别和 模式类型作为响应200中的文件。

API网关设置-

  1. 将二进制媒体类型设置为“ application / pdf”和“ application / octet-stream”(也可以通过* / *尝试)
  2. 确保API网关-方法响应包括HTTP状态“ 200”,响应正文的内容类型为“ application / pdf”(空模型)
  3. 将指定的内容处理转换为二进制。

当我通过邮递员到达终点时,我在响应和响应标头中看到UTF-8编码的JSON字符串为“ application / pdf”。当我尝试将请求接受标头设置为“ application / pdf”(但可以在日志中看到八位字节流以及已编码的字节数组)时,得到了500响应。我想我唯一在这里缺少的是将isBase64Encoded属性设置为true。无法弄清楚如何在我的代码中进行设置。 有什么想法吗?

0 个答案:

没有答案