微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java 中的 AWS Lambda http GET 方法

如何解决Java 中的 AWS Lambda http GET 方法

我正在用 Java 编写一个 AWS Lambda 函数,但很难发出 http get 请求,可能是因为我没有传递正确的 User-Agent 参数。

错误状态返回403

有人可以告诉我我应该在 User-Agent 中具体指定 AWS lambda 函数吗?

或者在java中使用get请求的任何替代方法

当我在桌面环境中使用 User-Agent 作为“Mozilla/5.0”运行相同的代码时,代码运行良好并返回 200。

以下是我的 Java 代码

public Object handleRequest(Object request,Context context){

        
    try {

        String vAdress = "https://cdn-api.co-vin.in/api/v2/admin/location/states"
        URL vURL = new URL(vAdress);

        HttpURLConnection vConnection = (HttpURLConnection) vURL.openConnection();
        vConnection.setRequestMethod("GET");
        //vConnection.setRequestProperty("User-Agent","Java client");
        //vConnection.setRequestProperty("User-Agent","agent");     
        System.out.println(vConnection.getResponseCode());


    } catch (IOException ioe) {
        return ioe.toString();
    }
}

解决方法

我认为您必须使用 API Gateway 将请求代理到您的 lambda 函数,然后设置一个 mapping template 以通过用户代理传递到您的 lambda。

,

我建议考虑配置 API Gateway 以向 Lambda 发送代理请求。这不仅为您提供了请求正文,还为您提供了所有标头。

https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。