此错误通常由API网关无法正确处理POST请求中的Content-Type x-www-form-urlencoded格式所致。为解决此问题,可以进行以下步骤:
#set($httpMethod = $context.httpMethod)
#set($path = $context.path)
#set($protocol = $context.protocol)
#set($queryParams = $util.parseQueryString($context.httpMethod == "GET" ? $context.queryString : ""))
{
"body": {
"formParams": {
#foreach($item in $input.path('$').split("&"))
#set($keyVal = $item.split("="))
#set($key = $util.urlDecode($keyVal[0]))
#set($val = $util.urlDecode($keyVal[1]))
"$key": "$val"#if($foreach.hasNext),#end
#end
}
},
"headers": {
#foreach($header in $input.params().header.keySet())
"$header": "$util.escapeJavaScript($input.params().header.get($header))" #if($foreach.hasNext),#end
#end
},
"method": "$context.httpMethod",
"params": {
#foreach($queryParam in $queryParams.keySet())
"$queryParam": "$util.escapeJavaScript($queryParams.get($queryParam))" #if($foreach.hasNext),#end
#end
},
"path": "$path",
"protocol": "$protocol",
"query": "$context.queryString",
"resourcePath": "$context.resourcePath",
"stage": "$context.stage"
}
通过上述方法进行调整即可解决API网关POST测试返回415 Unsupported Media Type错误。
上一篇:api网关瓶颈