我正在努力同时发送多个API请求,以下是我为同时发送多个API调用所做的步骤:
我知道如何按顺序制作,我希望能够用线程来制作。
这是我的代码:
private void createUsers() throws ApiException {
AuthAPI authAPI = new AuthAPI(HOST);
usersMap = new HashMap<>();
for (int i = 0; i < 40 - 1; i++) {
String USER_NAME = "Introductory Content User " + StringUtils.getRandomString(5, true, false);
usersAPIUnitTest.createUser(USER_NAME, UserRole.ADMIN, "", "", "");
String email = UsersAPIUnitTest.getEmail();
System.out.println(email);
String userToken = authAPI.generateToken(email);
usersMap.put(USER_NAME, userToken);
}
}
然后我使用此方法发送api调用:
public void sendMultipleAPIRequests() throws IOException {
for(Map.Entry mapElement : usersMap.entrySet()){
LabAPIChecker labAPIChecker = new LabAPIChecker(HOST, mapElement.getValue());
JsonObject jsonObject = labAPIChecker.launchLabGetRequest();//this line perform simple 'get' request
}
}
@michael-gantman建议下的结果代码:
public void sendMultipleAPIRequests() throws IOException
{
ExecutorService executorService = Executors.newFixedThreadPool(10); // max 10 concurrent threads
for (Map.Entry mapElement : usersMap.entrySet()) {
Runnable thread = () -> {
LabAPIChecker labAPIChecker = new LabAPIChecker(HOST, mapElement.getValue());
JsonObject jsonObject = labAPIChecker.launchLabGetRequest();
};
executorService.execute(thread);
}
executorService.shutdown();
}
所有功劳都归于迈克尔·甘特曼
您可以使用标准java工具来完成这一切。您需要使用ScheduledExecutorService,或者可能只是一个执行器服务(ExecutorService),以获得一次性[Executors]class2的距离。您需要创建(或修改)自己的类来实现Runnable
接口,其中方法run()
将负责发送单个请求。然后,您需要将所有可运行文件提交给ScheduledExecutorService以同时运行。将线程数设置为可运行的线程数,它们将同时运行
我正在使用以下代码发送GET api请求。下面的url有一个参数,例如字符串url=”https://my/api“variable”test。我使用for循环遍历变量列表(超过2000个),并创建url以使用以下代码发送get API请求。我想并行发送多个API请求以减少总时间。请建议最好的方法。
我已经为此挠头两天了。我使用WebAPI版本2.2和我使用CORS。这个设置工作在服务器端,我被允许从我的web客户端服务器代码获得授权的内容,但在我的ajax调用中获得未经授权的内容。 以下是我的配置: Web API配置 WebApiConfig: Startup.Auth.cs: (我已经尝试了app.UseCors(CorsOptions.AllowAll)和config.EnableCo
我正在尝试从这个 API 调用中创建“UUID”,我正在使用 axios 和 vue.js。这是我的源代码。 但不幸的是,我得到了 在'访问XMLHttpRequesthttps://www.uuidtools.com/api/generate/v1'从原点'http://localhost:8080'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“access c
这是在收到以db为单位的帖子列表后发送带有每个帖子链接数据的POST请求的代码。 在使用每个链接请求帖子后,从回复中提取playerCount并将其更新到每个帖子。 我在这段代码中使用Resttemplate,但有一个问题需要花费太长时间。 所以我想把这个代码改为一次发送一个请求,并在所有请求完成后更新每个帖子。 我怎样才能把这个代码转换成我想要的? 我将使用此代码作为计划任务。
问题内容: 我想知道如何一次获取多个GET URL,然后将获取的JSON数据放入我的React DOM元素中。 这是我的代码: 但是,我想从服务器中获取其他JSON数据,然后使用传递到其中的所有这些JSON数据呈现我的ReactDOM。例如: 这可能吗?如果不是,将多个JSON数据提取到我的渲染ReactDOM元素中的其他解决方案是什么? 问题答案: 您可以在解决方案之前依靠Promises来执行
我正在尝试连接到FatSecret API。这是他们为oauth2授权提供的留档链接:https://platform.fatsecret.com/api/Default.aspx?screen=rapiauth2#using-token-api 我已经完成了第一步和第二步,现在我被困在第三步。我已经设法用“application/json”更新了标题,但我不确定我的调用是否包括我创建的令牌。我得