Set explicit timeout for http request (#15505)
* Bondhome * chatgpt * electroluxair * energidataservice * freeboxos * gardena * generacmobilelink * hdpowerview * icalendar * juicenet * kostalinverter * liquidcheck * mcd * meater * miele * mercedesme * mybmw * myq * ojelectronics * plex * radiothermostat * renault * semsportal * sensibo * tapocontrol * tellstick * verisure * vizio --------- Signed-off-by: lsiepel <leosiepel@gmail.com> Signed-off-by: Leo Siepel <leosiepel@gmail.com>
This commit is contained in:
@@ -25,6 +25,7 @@ import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
@@ -58,6 +59,7 @@ import com.google.gson.JsonSyntaxException;
|
||||
public class LiquidCheckDiscoveryService extends AbstractDiscoveryService {
|
||||
|
||||
private static final int DISCOVER_TIMEOUT_SECONDS = 300;
|
||||
private static final int REQUEST_TIMEOUT_MS = 10_000;
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
private final HttpClient httpClient;
|
||||
@@ -97,7 +99,8 @@ public class LiquidCheckDiscoveryService extends AbstractDiscoveryService {
|
||||
List<InetAddress> hosts = findActiveHosts(addresses);
|
||||
for (InetAddress host : hosts) {
|
||||
Request request = httpClient.newRequest("http://" + host.getHostAddress() + "/infos.json")
|
||||
.method(HttpMethod.GET).followRedirects(false);
|
||||
.timeout(REQUEST_TIMEOUT_MS, TimeUnit.MILLISECONDS).method(HttpMethod.GET)
|
||||
.followRedirects(false);
|
||||
try {
|
||||
ContentResponse response = request.send();
|
||||
if (response.getStatus() == 200) {
|
||||
|
||||
@@ -34,7 +34,6 @@ import org.slf4j.LoggerFactory;
|
||||
*/
|
||||
@NonNullByDefault
|
||||
public class LiquidCheckHttpClient {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(LiquidCheckHttpClient.class);
|
||||
private final HttpClient client;
|
||||
private final LiquidCheckConfiguration config;
|
||||
@@ -78,7 +77,7 @@ public class LiquidCheckHttpClient {
|
||||
*/
|
||||
public String measureCommand() throws InterruptedException, TimeoutException, ExecutionException {
|
||||
String uri = "http://" + config.hostname + "/command";
|
||||
Request request = client.newRequest(uri);
|
||||
Request request = client.newRequest(uri).timeout(config.connectionTimeout, TimeUnit.SECONDS);
|
||||
request.method(HttpMethod.POST);
|
||||
request.header(HttpHeader.CONTENT_TYPE, "applicaton/json");
|
||||
request.content(new StringContentProvider(
|
||||
|
||||
Reference in New Issue
Block a user