使用 Java 发出并发 Web 请求

2024-01-04

有人可以指出我用于发出并行网络请求的片段吗?我需要发出 6 个 Web 请求并连接 HTML 结果。

有没有一种快速的方法来完成这个任务,或者我必须采用线程方式?

谢谢。


Use ExecutorService http://download.oracle.com/javase/6/docs/api/java/util/concurrent/ExecutorService.html with Callable<InputStream> http://download.oracle.com/javase/6/docs/api/java/util/concurrent/Callable.html.

开球示例:

ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
Future<InputStream> response1 = executor.submit(new Request("http://google.com"));
Future<InputStream> response2 = executor.submit(new Request("http://stackoverflow.com"));
// ...
ByteArrayOutputStream totalResponse = new ByteArrayOutputStream();
copyAndCloseInput(response1.get(), totalResponse);
copyAndCloseInput(response2.get(), totalResponse);
// ...
executor.shutdown();

with

public class Request implements Callable<InputStream> {

    private String url;

    public Request(String url) {
        this.url = url;
    }

    @Override
    public InputStream call() throws Exception {
        return new URL(url).openStream();
    }

}

也可以看看:

  • Java 教程:并发 http://download.oracle.com/javase/tutorial/essential/concurrency/index.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Java 发出并发 Web 请求 的相关文章

  • 在Java中使用命令行编译多个包

    您好 我一直在使用 IDE 但现在我需要从命令行运行和编译 问题是我有多个软件包 我试图找到答案 但没有任何效果 所以我有 src Support java files Me java files Wrapers java files 你知
  • 使用 Java 在 WebDriver 中按 Ctrl+F5 刷新浏览器

    我已经使用 java 刷新了 WebDriver 中的浏览器 代码如下 driver navigate refresh 如何使用 Java 在 WebDriver 中按 Ctrl F5 来做到这一点 我认为您可以使用 WebDriver 和
  • 无法使用 json 架构验证器根据预定义的 yaml 文件验证查询参数

    我需要根据预定义的 yaml 文件架构验证查询参数的架构 因此我使用 json 架构验证器 验证如何失败 我正在执行以下步骤 填充参数和相应的架构 final List
  • 如何比较 Struts 2 中 url 请求参数中的单个字符

    我正在读取具有单个字符的 url 参数 它将是Y or N 我必须写一个条件来检查它是否Y or N并做相应的事情 这是我写的 但似乎不起作用 总是转到其他地方 网址是
  • 哪个 Swing 布局管理器可以获得我想要的布局?

    我正在尝试按照这个模型制作一个基本的登录菜单 我决定将整个菜单放入 JPanel 中 以便在连接成功后我可以切换到另一个面板 所以我决定使用 Borderlayout 将标题放在北区 将连接按钮放在南区 我将边框布局的中心本身设置为面板 我
  • Spring3/Hibernate3/TestNG:有些测试给出 LazyInitializationException,有些则没有

    前言 我在单元测试中遇到了 LazyInitializationException 的问题 而且我很难理解它 正如你从我的问题中看到的那样Spring 中的数据库会话 https stackoverflow com questions 13
  • 请参阅 Java EE eclipse 调试中的 POST 参数

    我在调试 Java EE 方面没有经验 我更像是一个 javascript 人 我需要查看哪些 HTTP POST 参数到达服务器端 我在表单将其操作指向的 jsp 文件中放置了一个断点 现在我在调试变量窗口中找不到 POST 内容 他们在
  • Java Microsoft Excel API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • JTable 和 JScrollpane 大小的问题

    我有一个JScrollPane with a JTable在里面 在里面JTable我最初有 3 行 稍后添加行 默认JTable我的 3 行很难看 因为JScrollPane calls getPreferredScrollableVie
  • 如何导入 org.apache.commons.lang3.ArrayUtils;进入 Eclipse [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我如何导入 org apache commons lang3 ArrayUtils 将库添加到 Ecl
  • 从 @JsonProperty 值获取枚举常量

    我有一个标有 JsonProperty 的枚举 用于使用 Jackson 进行 JSON 序列化 反序列化 并且希望获取给定字符串 JsonProperty 的枚举值 public enum TimeBucket JsonProperty
  • 在 IntelliJ 中运行 Spring Boot 会导致 Unable to load 'javax.el.E​​xpressionFactory'

    我正在尝试运行一个简单的 Spring Boot 应用程序 该应用程序具有以下 Maven pom file
  • Jenkins 的代码覆盖率 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何将 Observable>> 转换为 Observable>

    我陷入了如何将以下可观察类型转换 转换为我的目标类型的困境 我有以下类型的可观察值 Observable
  • 我想在java中使用XQuery进行Xml处理

    我想用XQuery用于从 java 中的 Xml 获取数据 但我没有得到需要为此添加哪个 Jar 我在谷歌上搜索了很多 但没有得到任何有用的例子 例如我得到以下链接 https docs oracle com database 121 AD
  • 当您在数组列表上调用remove(object o)时,它如何比较对象?

    当您在 java 中的数组列表上调用remove object o 时 它如何比较对象以找到要删除的正确对象 它使用指针吗 或者它使用 Comparable 接口来比较对象吗 ArrayList remove 依赖于对象的实现Equal方法
  • 创建正则表达式匹配数组

    在Java中 我试图将所有正则表达式匹配返回到一个数组 但似乎您只能检查模式是否匹配某些内容 布尔值 如何使用正则表达式匹配来形成与给定字符串中的正则表达式匹配的所有字符串的数组 4城堡的回答 https stackoverflow com
  • 如何用表达式语言获取布尔属性?

    如果我有一堂这样的课 class Person private int age public int getAge return age public boolean isAdult return age gt 19 我可以得到age像这样
  • 摩尔斯电码 至 英语

    我现在的问题是让 摩尔斯电码转英语 正常工作 将英语转换为莫尔斯电码的第一部分工作正常 我知道以前已经有人问过这个问题 但我不知道我做错了什么 我知道我需要在某个地方进行拆分 但我只是不确定将其放在代码中的何处 现在 莫尔斯电码到英语的部分
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只

随机推荐

  • 使用 boost.python 时 C++ 流有什么问题?

    更新 2 我不知道为什么这个仍然被投票 2014 年 3 月 自从我多年前问过这个问题以来 这个问题似乎已经解决了 确保您使用的是最新版本的 boost 更新 也许 C 流需要初始化才能格式化数字 而在 Python 中加载共享库时初始化没
  • 索引/匹配 - 如果第一个值为空,则查找第二个值

    我希望在用 Excel 编写公式时得到一些帮助 我有一个表 其中包含员工列表及其手机号码 但是 该表的结构方式存在许多空白行和重复行 本质上 我希望通过对相应的手机号码执行查找来创建一个没有任何重复项和空白的新表 问题是 当我执行标准索引
  • 如何在 Kubernetes Python 客户端中指定 ca_bundle

    我正在尝试使用Kubernetes Python 客户端 https github com kubernetes client python连接到我的 Kubernetes 集群 该 API 位于我的 CA 签署的 SSL 证书后面 如果我
  • 使用 jwt 和许多角色进行基于角色的访问

    我有一个带有许多控制器的 Web api 通过这些控制器 我定义了很多角色并装饰了控制器 功能 为了访问 api 我使用 jwt 我尝试将我的角色写入 jwt 之类的键值中 这工作正常 但如果我在 jwt 中设置许多角色 令牌就会变得非常大
  • Bootstrap 3.1.0:附加太长

    我在用引导程序3 1 0 当 附加 对于视口来说太长时 它会被切断 永远不会显示底部项目 是否有可能让 Bootstrap 的词缀以用户仍然可以从上到下滚动完整词缀的方式运行 有问题的例子 div class container div c
  • Python 中列的绝对值

    如何将 计数 列的值转换为绝对值 我的数据框的摘要如下 datetime count 0 2011 01 20 00 00 00 14 565996 1 2011 01 20 01 00 00 10 204177 2 2011 01 20
  • Python快速异或超范围算法

    有一个编程挑战 需要生成一个XOR基于序列起始号和间隔长度的校验和 它要求您根据间隔长度迭代序列 并在每次迭代时不断减少为校验和计算选取的元素数量 Example 如果起始编号是0间隔长度为3 该过程将如下所示 0 1 2 3 4 5 6
  • java中堆内存和字符串常量池有什么区别

    In Java 使用创建的对象新操作员将被存储在堆 记忆 使用创建的对象字符串字面量存储在 这字符串常量池 我正在运行以下代码来检查哈希码 String nameOne Deepak String nameTwo new String De
  • 混合手动\自动编号序列

    在编号顺序设置 CS201010 中 有一个手动编号选项 但是 取决于文档类型 在某些情况下 参考编号可以留空 如果它是空白的 我希望自动编号启动 或者在保存文档之前调用 NextNumber 函数 是否可以 我怎么做 目前 如果我强制执行
  • 相当于其他编译器中gcc/clang的march=native?

    我想知道除了 gcc 和 clang 之外是否还有其他编译器提供类似 march native选项 如果有 该选项是什么 我已经从另一个问题中明白了 在 Visual C 中自动构建最佳可用平台 相当于 gcc 的 march native
  • 为什么 const 成员必须在构造函数初始值设定项中初始化,而不是在其主体中初始化?

    为什么类成员必须声明为const在构造函数初始值设定项列表中而不是在构造函数主体中初始化 两者有什么区别 在 C 中 当执行进入构造函数主体时 对象被视为完全初始化 你说 我想知道为什么 const 必须在构造函数初始值设定项列表中而不是在
  • stateChangeStart 中从子状态访问父状态的参数

    有没有办法从父状态获取参数 我的州看起来像这样 stateProvider state home url home param1 template div home div
  • 在 django-rest-framework 验证器中为整数字段强制指定整数类型

    django rest framework 验证器接受字符串引用的整数作为整数字段的有效数据 有没有办法强制规定数据类型 以便不接受字符串引用的整数 序列化器将原始数据保存在self initial data自定义验证方法可以从中检索它 所
  • 如何在 Android 应用程序中将 putExtra() 与 FLAG_ACTIVITY_REORDER_TO_FRONT 一起使用?

    我有一个应用程序 称为 App1 在我的 App1 中 我调用相机应用程序 intent new Intent Intent ACTION MAIN intent setComponent new ComponentName com and
  • 在 C# 中,“DateTime”类型中的“?”是什么?[重复]

    这个问题在这里已经有答案了 我刚刚在使用 System DirectoryServices AccountManagement 时遇到了一些代码 public DateTime LastLogon get 是什么 在日期时间之后 我找到了一
  • java.sql.Array/Blob/Clob 类型是否需要“free()”?

    我需要明确的电话吗free 在数组 clob 等上 或者关闭 ResultSet 和 或 Statement 会自动解决这个问题吗 javadoc 没有说什么 所以我认为这是没有必要的 但我不想做出错误的假设 另外 如果没有必要 立即关闭结
  • 如何更改力布局中节点之间的距离?

    我是 D3 的新手 正在尝试学习力布局 我想改变节点之间的链接距离并保持原点形状 我发现在更改链接的距离后 布局发生了变化 图一是原来的布局 然后我用代码改变了链接距离distance 150 第80行 使节点更进一步 但布局的变化超出了我
  • 如何使用 OpenXml 将外部图像添加到 Word 文档?

    我正在尝试使用 C 和 Open XML 将图像从 url 插入到文档中 该图像可能会发生变化 因此我不想下载它 我希望它保留为外部参考 我发现了几个像这样的例子 可以让我添加本地图像 http msdn microsoft com en
  • Ember模型间隔重载

    我有一个用户模型 它具有纬度和经度属性 用于在地图上显示当前用户位置 App User DS Model extend firstName DS attr string lastName DS attr string email DS at
  • 使用 Java 发出并发 Web 请求

    有人可以指出我用于发出并行网络请求的片段吗 我需要发出 6 个 Web 请求并连接 HTML 结果 有没有一种快速的方法来完成这个任务 或者我必须采用线程方式 谢谢 Use ExecutorService http download ora