У меня есть набор данных, и я должен вызывать API для каждой строки набора данных. Я использую функцию карты для этого. Внутри функции map я выполняю вызов API и возвращаю новый объект.
Я могу выполнять вызовы API, создавая новый HttpClient для каждого вызова.
HttpClient client = new DefaultHttpClient();
клиент инициализируется и используется внутри функции карты,
Однако, когда я пытаюсь использовать один экземпляр Http Client, мои вызовы API завершаются с ошибкой.
java.lang.IllegalStateException: Invalid use of BasicClientConnManager: connection still allocated.Make sure to release the connection before allocating another one.
Я использую следующий подход для обеспечения единственного объекта HttpClient.
private static HttpClient httpClient;
public static HttpClient gethttpClient() {
if (httpClient == null) {
httpClient = new DefaultHttpClient();
}
return httpClient;
}
И вызов gethttpClient () для вызовов API getmake. Тем не менее он выдает вышеуказанную ошибку.
Какой может быть правильный способ выполнения вызовов API из функции карты в java spark.