AWS Lambda REST API POST 方法我无法获取查询参数

问题描述 投票:0回答:1

我的 REST API 有问题。我需要传递查询参数,因为稍后我需要将其用于另一个函数。在AWS仪表板中,我的REST API网关有url“something/restaurant/confirmation”。确认资源有POST方法。我已经在集成请求、映射模板中设置了 url 查询字符串参数

 ""{tokenId": "$input.params('tokenId')}""
。我使用地址“amazonaws.com/dev/restaurant/confirmation?tokenId=6a25980e-7c07-4d1d-a40e-bf09b9e2bd37”,但我一直在得到

errorMessage": "Cannot invoke \"java.util.Map.get(Object)\" because the return value of \"com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent.getQueryStringParameters()\" is null",
"errorType": "java.lang.NullPointerException",
"stackTrace": [
    "com.example.couponservice.CouponService.handleRequest(CouponService.java:60)",
    "java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
    "java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)",
    "java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)",
    "java.base/java.lang.reflect.Method.invoke(Unknown Source)"

这是我的一段代码 `public APIGatewayProxyRequestEvent handleRequest(APIGatewayProxyRequestEvent apiGatewayProxyRequestEvent, Context context) {

    LambdaLogger logger = context.getLogger();
    logger.log("Handling http post for /users API endpoint");

    String requestBody = apiGatewayProxyRequestEvent.getBody();
    Gson gson = new Gson();
    Map<String, String> requestDetails = gson.fromJson(requestBody, Map.class);

    logger.log("test1 tqweqwe" + apiGatewayProxyRequestEvent.getQueryStringParameters());
    logger.log("test2 tokasdasdth" + apiGatewayProxyRequestEvent.getQueryStringParameters().get("tokenId"));
    String tokenIdFromPath = apiGatewayProxyRequestEvent.getQueryStringParameters().get("tokenId");


    logger.log("a test3 tokenfrompath" + tokenIdFromPath);`

三天后我不知道出了什么问题。我检查了一些在线资源,但仍然找不到解决方案。有人知道出了什么问题吗?也许我以某种方式发送了错误的参数?有一个空错误代码,我不明白为什么,因为理论上我发送正确。 logger.log 也给出 null。谢谢大家

java amazon-web-services aws-lambda nullpointerexception http-post
1个回答
0
投票

有人吗?一些帮助将会非常有帮助😅

© www.soinside.com 2019 - 2024. All rights reserved.