gpt4 book ai didi

java - java代码中的多个url连接

转载 作者:行者123 更新时间:2023-12-01 14:58:00 26 4
gpt4 key购买 nike

我有一个被多次调用的以下函数

report="http://myURL/some_file.php" + "?someParam=" + getSomeParam()";

其中 myURL 始终相同,而 some_file.phpsomeParam 每次都不同。

private static void makeReport(final String report) {
try {
URL url = new URL(report);
try {
url.openStream();
} catch (IOException e) {
return; // do nothing
}
} catch (MalformedURLException e) {
return; // do nothing
}
}

问题是,这是否是处理这种情况的有效方法,每次打开具有不同参数的新连接?另外,报告对主程序没有影响,那么它应该在不同的线程/进程中完成吗?

最佳答案

打开新连接会产生一些开销,但听起来您的程序并没有大量使用套接字,因此开销应该可以忽略不计。您不需要两个 try block ,顺便说一下,您可以只使用一个并将 catch block 一个接一个地放置。

private static void makeReport(final String report) {
InputStream in = null;
try {
URL url = new URL(report);
in = url.openStream();
} catch (MalformedURLException e) {
return; // do nothing
} catch (IOException e) {
return; // do nothing
} finally {
try { in.close(); } catch (IOException ex) { ex.printStackTrace(); }
}
}

至于这个方法是否应该在自己的线程中运行,取决于上下文。是否需要异步?就其值(value)而言,发出简单的 GET 请求应该不会花费太长时间。我无法想象您需要它位于自己的线程中的情况。

最后一点,无论何时打开连接,关闭它总是一个好习惯,特别是在 try-catch-finally(或 try-with-resources)构造中。不遵循这种做法是在更复杂的套接字编程中引入连接泄漏的好方法。

关于java - java代码中的多个url连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14092481/

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