copyURLToFile()引发java.net.SocketException
当我运行以下代码时:copyURLToFile()引发java.net.SocketException,java,apache-commons-io,Java,Apache Commons Io,当我运行以下代码时: try { URL url = new URL("https://www1.nseindia.com/live_market/dynaContent/live_watch/get_quote/GetQuote.jsp?symbol=HUDCO&series=N2"); File f = new File("/Users/Vaibhav/Desktop/nseurltest.txt"); FileUtils.copyURLToFile(url,
try {
URL url = new URL("https://www1.nseindia.com/live_market/dynaContent/live_watch/get_quote/GetQuote.jsp?symbol=HUDCO&series=N2");
File f = new File("/Users/Vaibhav/Desktop/nseurltest.txt");
FileUtils.copyURLToFile(url, f);
} catch (Exception e) {
e.printStackTrace();
}
我得到一个java.net.SocketException:操作在大约30秒后超时。大约一个月前,相同的代码运行时没有出现错误。突然出现此异常的原因可能是什么?我如何修复它
此代码的目标是从URL复制到的.txt文件中最终提取HUDCO N2债券的最新市场价格。如果有另一种简单的方法从URL中提取市场价格,我很乐意听到。我想你尝试访问的网站会阻止未知的连接。但是您可以使用jsoup库来克服这个问题。通过下面的代码,我成功地下载了链接的内容
Response response = Jsoup.connect(
"https://www1.nseindia.com/live_market/dynaContent/live_watch/get_quote/GetQuote.jsp?symbol=HUDCO&series=N2")
.ignoreContentType(true)
.userAgent(
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36")
.referrer("http://www.google.com").timeout(30000).followRedirects(true).execute();
Document doc = response.parse();
j组依赖性:
<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.11.3</version>
</dependency>
org.jsoup
请进行堆栈跟踪。谢谢!!这解决了我的问题。我刚刚用您的第一个代码片段替换了我的代码,导入了org.jsoup.Connection.Response、org.jsoup.jsoup和org.jsoup.nodes.Document,并用doc.body().text()从文档中提取了文本。我对第二段代码感到困惑,我该怎么处理它呢?别担心。我是为maven dependecy添加的。我正在使用maven:)嗨,您的答案中的代码出现了一个新问题:我现在得到一个“java.net.SocketTimeoutException:Read timeout”。为什么会发生这种情况?有什么办法可以解决吗?@Vebby你能在浏览器中打开url吗?是的,我能,在我使用的两种浏览器中:Chrome 83.0.4103.61和我Mac上的Firefox 76.0.1(Catalina 10.15.4)。该网站有一个更新版本,这是等效的URL:。但是,在代码中插入此URL会产生相同的错误。