gpt4 book ai didi

java - AWS Lambda - 缓冲读取器

转载 作者:行者123 更新时间:2023-12-02 13:19:44 25 4
gpt4 key购买 nike

我正在 AWS Lambda 上使用 Java 来获取网站的 URL 源代码。我有以下代码:

URL yahoo = new URL(url);
URLConnection yc = yahoo.openConnection();
yc.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
BufferedReader in = new BufferedReader(newInputStreamReader(yc.getInputStream(), "UTF-8"));
String inputLine;
StringBuilder a = new StringBuilder();
while ((inputLine = in.readLine()) != null)a.append(inputLine);
in.close();
System.out.println(a.toString());

在某些网站上,代码运行得非常好。每次在我的本地机器上都运行良好。但是,当在 AWS Lambda 上运行时,它会卡在以下部分:

BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream(), "UTF-8"));

然后我得到:任务在 20 秒后超时。

在 Lambda 日志中,我收到以下错误:

有效负载:java.nio.HeapByteBuffer[pos=0 lim=115 cap=115]

我的猜测是,这与编码有关吗?为什么有些网站处理得非常好,而有些网站却卡在了那行代码上?

非常感谢您的所有回答。

最佳答案

实现这项工作的简单解决方案 - 是将您的 Lambda 从它现在所在的 VPC 中取出。

阅读我对此主题的回答,详细解释为什么会发生这种情况。

AWS lambda invoke not calling another lambda function - Node.js

(注意:答案与 NodeJS 无关)

关于java - AWS Lambda - 缓冲读取器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43623338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com