java的input不能更改,无法将方法响应标头Content-Type更改为application / xml
嘗試解決Twilio 12300錯誤:使用AWS的API網關(GET)和CloudFormation通過 aws cli 和Swagger部署Lambda(無服務器)應用程序時導致的內容類型無效 .
我將集成響應主體映射模板> Content-Type設置為 application/xml 和模板
#set($inputRoot = $input.path('S'))
$inputRoot
檢查Twilio日志中的實際Response Body,輸出與模板匹配,返回格式正確的XML響應 .
但是,響應 Headers > Content-Type仍返回 application/json .
似乎這需要在Method Response中進行設置更改,但AWS API Gateway儀表板和/或Swagger API不允許我將Header> Content-Type設置為 application/xml .
下面是 swagger.yaml 文件
---
swagger: "2.0"
info:
version: "2016-12-20T18:27:47Z"
title: "twilio-apigateway"
basePath: "/Prod"
schemes:
- "https"
paths:
/addphoto:
get:
consumes:
- "application/json"
produces:
- "application/xml"
responses:
200:
description: "200 response"
x-amazon-apigateway-integration:
responses:
default:
statusCode: "200"
responseTemplates:
application/xml: "#set($inputRoot = $input.path('$'))\n<?xml version=\"\
1.0\" encoding=\"UTF-8\"?>\n\n \n \n\
\ $inputRoot\n \n \n "
requestTemplates:
application/json: "{\n \"body\" : \"$input.params('Body')\",\n \"\
fromNumber\" : \"$input.params('From')\",\n \"image\" : \"$input.params('MediaUrl0')\"\
,\n \"numMedia\" : \"$input.params('NumMedia')\"\n}"
# NOTE: Replace <> and <> fields
uri: arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:<>:function:${stageVariables.LambdaFunctionName}/invocations
passthroughBehavior: "when_no_templates"
httpMethod: "POST"
contentHandling: "CONVERT_TO_TEXT"
type: "aws"
在解決這個問題的任何人都會喜歡這里的幫助 . 雖然這似乎是一個已知問題(Twilio需要XML格式),并且AWS Swagger API在某些方面受到限制,這可能導致無法解析的狀態 .
其他參考:
總結
以上是生活随笔為你收集整理的java的input不能更改,无法将方法响应标头Content-Type更改为application / xml的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java中级工程师面试题
- 下一篇: python底层源码_python源码剖