This upgrades Apache HttpClient
- Update to latest version of httpclient and httpcomponents - Fixes resulting deprecations - Switch to using try with resources Signed-off-by: Ben Kelsey <bfkelsey@gmail.com>
This commit is contained in:
@@ -136,13 +136,13 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpcore</artifactId>
|
||||
<version>4.2.4</version>
|
||||
<version>4.4.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
<version>4.2.4</version>
|
||||
<version>4.5.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
|
||||
@@ -25,11 +25,11 @@ import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.config.RequestConfig;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.params.HttpConnectionParams;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
|
||||
import org.libresonic.player.Logger;
|
||||
import org.libresonic.player.domain.MediaFile;
|
||||
@@ -72,14 +72,15 @@ public class CoverArtService {
|
||||
private void saveCoverArt(String path, String url) throws Exception {
|
||||
InputStream input = null;
|
||||
OutputStream output = null;
|
||||
HttpClient client = new DefaultHttpClient();
|
||||
|
||||
try {
|
||||
HttpConnectionParams.setConnectionTimeout(client.getParams(), 20 * 1000); // 20 seconds
|
||||
HttpConnectionParams.setSoTimeout(client.getParams(), 20 * 1000); // 20 seconds
|
||||
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||
RequestConfig requestConfig = RequestConfig.custom()
|
||||
.setConnectTimeout(20 * 1000) // 20 seconds
|
||||
.setSocketTimeout(20 * 1000) // 20 seconds
|
||||
.build();
|
||||
HttpGet method = new HttpGet(url);
|
||||
|
||||
HttpResponse response = client.execute(method);
|
||||
method.setConfig(requestConfig);
|
||||
try (CloseableHttpResponse response = client.execute(method)) {
|
||||
input = response.getEntity().getContent();
|
||||
|
||||
// Attempt to resolve proper suffix.
|
||||
@@ -130,11 +131,10 @@ public class CoverArtService {
|
||||
} catch (Exception x) {
|
||||
LOG.warn("Failed to rename existing cover file.", x);
|
||||
}
|
||||
|
||||
}
|
||||
} finally {
|
||||
IOUtils.closeQuietly(input);
|
||||
IOUtils.closeQuietly(output);
|
||||
client.getConnectionManager().shutdown();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,12 +24,12 @@ import java.io.StringReader;
|
||||
import java.net.SocketException;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.ResponseHandler;
|
||||
import org.apache.http.client.config.RequestConfig;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.impl.client.BasicResponseHandler;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.params.HttpConnectionParams;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.jdom.Document;
|
||||
import org.jdom.Element;
|
||||
import org.jdom.Namespace;
|
||||
@@ -92,17 +92,15 @@ public class LyricsService {
|
||||
}
|
||||
|
||||
private String executeGetRequest(String url) throws IOException {
|
||||
HttpClient client = new DefaultHttpClient();
|
||||
HttpConnectionParams.setConnectionTimeout(client.getParams(), 15000);
|
||||
HttpConnectionParams.setSoTimeout(client.getParams(), 15000);
|
||||
RequestConfig requestConfig = RequestConfig.custom()
|
||||
.setConnectTimeout(15000)
|
||||
.setSocketTimeout(15000)
|
||||
.build();
|
||||
HttpGet method = new HttpGet(url);
|
||||
try {
|
||||
|
||||
method.setConfig(requestConfig);
|
||||
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||
ResponseHandler<String> responseHandler = new BasicResponseHandler();
|
||||
return client.execute(method, responseHandler);
|
||||
|
||||
} finally {
|
||||
client.getConnectionManager().shutdown();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+12
-10
@@ -25,12 +25,12 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.config.RequestConfig;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.params.HttpConnectionParams;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.springframework.web.bind.ServletRequestUtils;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.Controller;
|
||||
@@ -45,14 +45,16 @@ public class ProxyController implements Controller {
|
||||
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
String url = ServletRequestUtils.getRequiredStringParameter(request, "url");
|
||||
|
||||
HttpClient client = new DefaultHttpClient();
|
||||
HttpConnectionParams.setConnectionTimeout(client.getParams(), 15000);
|
||||
HttpConnectionParams.setSoTimeout(client.getParams(), 15000);
|
||||
RequestConfig requestConfig = RequestConfig.custom()
|
||||
.setConnectTimeout(15000)
|
||||
.setSocketTimeout(15000)
|
||||
.build();
|
||||
HttpGet method = new HttpGet(url);
|
||||
method.setConfig(requestConfig);
|
||||
|
||||
InputStream in = null;
|
||||
try {
|
||||
HttpResponse resp = client.execute(method);
|
||||
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||
try (CloseableHttpResponse resp = client.execute(method)) {
|
||||
int statusCode = resp.getStatusLine().getStatusCode();
|
||||
if (statusCode != HttpStatus.SC_OK) {
|
||||
response.sendError(statusCode);
|
||||
@@ -60,9 +62,9 @@ public class ProxyController implements Controller {
|
||||
in = resp.getEntity().getContent();
|
||||
IOUtils.copy(in, response.getOutputStream());
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
IOUtils.closeQuietly(in);
|
||||
client.getConnectionManager().shutdown();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
+12
-12
@@ -29,16 +29,16 @@ import java.util.concurrent.LinkedBlockingQueue;
|
||||
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
import org.apache.http.NameValuePair;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.ResponseHandler;
|
||||
import org.apache.http.client.config.RequestConfig;
|
||||
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.client.methods.HttpUriRequest;
|
||||
import org.apache.http.impl.client.BasicResponseHandler;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.message.BasicNameValuePair;
|
||||
import org.apache.http.params.HttpConnectionParams;
|
||||
|
||||
import org.libresonic.player.Logger;
|
||||
import org.libresonic.player.domain.MediaFile;
|
||||
@@ -62,7 +62,10 @@ public class AudioScrobblerService {
|
||||
private final LinkedBlockingQueue<RegistrationData> queue = new LinkedBlockingQueue<RegistrationData>();
|
||||
|
||||
private SettingsService settingsService;
|
||||
|
||||
private final RequestConfig requestConfig = RequestConfig.custom()
|
||||
.setConnectTimeout(15000)
|
||||
.setSocketTimeout(15000)
|
||||
.build();
|
||||
|
||||
/**
|
||||
* Registers the given media file at www.last.fm. This method returns immediately, the actual registration is done
|
||||
@@ -234,7 +237,9 @@ public class AudioScrobblerService {
|
||||
}
|
||||
|
||||
private String[] executeGetRequest(String url) throws IOException {
|
||||
return executeRequest(new HttpGet(url));
|
||||
HttpGet method = new HttpGet(url);
|
||||
method.setConfig(requestConfig);
|
||||
return executeRequest(method);
|
||||
}
|
||||
|
||||
private String[] executePostRequest(String url, Map<String, String> parameters) throws IOException {
|
||||
@@ -245,22 +250,17 @@ public class AudioScrobblerService {
|
||||
|
||||
HttpPost request = new HttpPost(url);
|
||||
request.setEntity(new UrlEncodedFormEntity(params, StringUtil.ENCODING_UTF8));
|
||||
|
||||
request.setConfig(requestConfig);
|
||||
return executeRequest(request);
|
||||
}
|
||||
|
||||
private String[] executeRequest(HttpUriRequest request) throws IOException {
|
||||
HttpClient client = new DefaultHttpClient();
|
||||
HttpConnectionParams.setConnectionTimeout(client.getParams(), 15000);
|
||||
HttpConnectionParams.setSoTimeout(client.getParams(), 15000);
|
||||
|
||||
try {
|
||||
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||
ResponseHandler<String> responseHandler = new BasicResponseHandler();
|
||||
String response = client.execute(request, responseHandler);
|
||||
return response.split("\\n");
|
||||
|
||||
} finally {
|
||||
client.getConnectionManager().shutdown();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -28,19 +28,18 @@ import java.util.concurrent.Future;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.apache.http.NameValuePair;
|
||||
import org.apache.http.StatusLine;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.config.RequestConfig;
|
||||
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.impl.client.BasicResponseHandler;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.message.BasicNameValuePair;
|
||||
import org.apache.http.params.HttpConnectionParams;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
|
||||
import org.libresonic.player.Logger;
|
||||
@@ -250,13 +249,13 @@ public class NetworkService {
|
||||
params.add(new BasicNameValuePair("licenseHolder", settingsService.getLicenseEmail()));
|
||||
}
|
||||
|
||||
HttpClient client = new DefaultHttpClient();
|
||||
|
||||
try {
|
||||
|
||||
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||
urlRedirectionStatus.setText(enable ? "Registering web address..." : "Unregistering web address...");
|
||||
request.setEntity(new UrlEncodedFormEntity(params, StringUtil.ENCODING_UTF8));
|
||||
|
||||
HttpResponse response = client.execute(request);
|
||||
try (CloseableHttpResponse response = client.execute(request)) {
|
||||
StatusLine status = response.getStatusLine();
|
||||
|
||||
switch (status.getStatusCode()) {
|
||||
@@ -271,13 +270,11 @@ public class NetworkService {
|
||||
testUrlRedirection = false;
|
||||
throw new IOException(status.getStatusCode() + " " + status.getReasonPhrase());
|
||||
}
|
||||
|
||||
}
|
||||
} catch (Throwable x) {
|
||||
LOG.warn(enable ? "Failed to register web address." : "Failed to unregister web address.", x);
|
||||
urlRedirectionStatus.setText(enable ? ("Failed to register web address. " + x.getMessage() +
|
||||
" (" + x.getClass().getSimpleName() + ")") : "Web address disabled.");
|
||||
} finally {
|
||||
client.getConnectionManager().shutdown();
|
||||
}
|
||||
|
||||
// Test redirection, but only once.
|
||||
@@ -305,20 +302,19 @@ public class NetworkService {
|
||||
}
|
||||
|
||||
HttpGet request = new HttpGet(url);
|
||||
HttpClient client = new DefaultHttpClient();
|
||||
HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000);
|
||||
HttpConnectionParams.setSoTimeout(client.getParams(), 30000);
|
||||
|
||||
try {
|
||||
RequestConfig requestConfig = RequestConfig.custom()
|
||||
.setConnectTimeout(15000)
|
||||
.setSocketTimeout(15000)
|
||||
.build();
|
||||
request.setConfig(requestConfig);
|
||||
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||
urlRedirectionStatus.setText("Testing web address " + urlToTest + ". Please wait...");
|
||||
String response = client.execute(request, new BasicResponseHandler());
|
||||
urlRedirectionStatus.setText(response);
|
||||
|
||||
} catch (Throwable x) {
|
||||
LOG.warn("Failed to test web address.", x);
|
||||
urlRedirectionStatus.setText("Failed to test web address. " + x.getMessage() + " (" + x.getClass().getSimpleName() + ")");
|
||||
} finally {
|
||||
client.getConnectionManager().shutdown();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,25 +39,25 @@ import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.concurrent.ThreadFactory;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.common.collect.Lists;
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.http.Header;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.config.RequestConfig;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.entity.ContentType;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.params.HttpConnectionParams;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.jdom.Document;
|
||||
import org.jdom.Element;
|
||||
import org.jdom.Namespace;
|
||||
import org.jdom.input.SAXBuilder;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import org.libresonic.player.Logger;
|
||||
import org.libresonic.player.dao.PodcastDao;
|
||||
import org.libresonic.player.domain.MediaFile;
|
||||
@@ -302,18 +302,19 @@ public class PodcastService {
|
||||
@SuppressWarnings({"unchecked"})
|
||||
private void doRefreshChannel(PodcastChannel channel, boolean downloadEpisodes) {
|
||||
InputStream in = null;
|
||||
HttpClient client = new DefaultHttpClient();
|
||||
|
||||
try {
|
||||
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||
channel.setStatus(PodcastStatus.DOWNLOADING);
|
||||
channel.setErrorMessage(null);
|
||||
podcastDao.updateChannel(channel);
|
||||
|
||||
HttpConnectionParams.setConnectionTimeout(client.getParams(), 2 * 60 * 1000); // 2 minutes
|
||||
HttpConnectionParams.setSoTimeout(client.getParams(), 10 * 60 * 1000); // 10 minutes
|
||||
RequestConfig requestConfig = RequestConfig.custom()
|
||||
.setConnectTimeout(2 * 60 * 1000) // 2 minutes
|
||||
.setSocketTimeout(10 * 60 * 1000) // 10 minutes
|
||||
.build();
|
||||
HttpGet method = new HttpGet(channel.getUrl());
|
||||
method.setConfig(requestConfig);
|
||||
|
||||
HttpResponse response = client.execute(method);
|
||||
try (CloseableHttpResponse response = client.execute(method)) {
|
||||
in = response.getEntity().getContent();
|
||||
|
||||
Document document = new SAXBuilder().build(in);
|
||||
@@ -328,7 +329,7 @@ public class PodcastService {
|
||||
|
||||
downloadImage(channel);
|
||||
refreshEpisodes(channel, channelElement.getChildren("item"));
|
||||
|
||||
}
|
||||
} catch (Exception x) {
|
||||
LOG.warn("Failed to get/parse RSS file for Podcast channel " + channel.getUrl(), x);
|
||||
channel.setStatus(PodcastStatus.ERROR);
|
||||
@@ -336,7 +337,6 @@ public class PodcastService {
|
||||
podcastDao.updateChannel(channel);
|
||||
} finally {
|
||||
IOUtils.closeQuietly(in);
|
||||
client.getConnectionManager().shutdown();
|
||||
}
|
||||
|
||||
if (downloadEpisodes) {
|
||||
@@ -349,10 +349,9 @@ public class PodcastService {
|
||||
}
|
||||
|
||||
private void downloadImage(PodcastChannel channel) {
|
||||
HttpClient client = new DefaultHttpClient();
|
||||
InputStream in = null;
|
||||
OutputStream out = null;
|
||||
try {
|
||||
try(CloseableHttpClient client = HttpClients.createDefault()) {
|
||||
String imageUrl = channel.getImageUrl();
|
||||
if (imageUrl == null) {
|
||||
return;
|
||||
@@ -367,17 +366,17 @@ public class PodcastService {
|
||||
}
|
||||
|
||||
HttpGet method = new HttpGet(imageUrl);
|
||||
HttpResponse response = client.execute(method);
|
||||
try (CloseableHttpResponse response = client.execute(method)) {
|
||||
in = response.getEntity().getContent();
|
||||
out = new FileOutputStream(new File(dir, "cover." + getCoverArtSuffix(response)));
|
||||
IOUtils.copy(in, out);
|
||||
mediaFileService.refreshMediaFile(channelMediaFile);
|
||||
}
|
||||
} catch (Exception x) {
|
||||
LOG.warn("Failed to download cover art for podcast channel '" + channel.getTitle() + "': " + x, x);
|
||||
} finally {
|
||||
IOUtils.closeQuietly(in);
|
||||
IOUtils.closeQuietly(out);
|
||||
client.getConnectionManager().shutdown();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -534,20 +533,21 @@ public class PodcastService {
|
||||
|
||||
LOG.info("Starting to download Podcast from " + episode.getUrl());
|
||||
|
||||
HttpClient client = new DefaultHttpClient();
|
||||
try {
|
||||
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||
|
||||
if (!settingsService.getLicenseInfo().isLicenseOrTrialValid()) {
|
||||
throw new Exception("Sorry, the trial period is expired.");
|
||||
}
|
||||
|
||||
PodcastChannel channel = getChannel(episode.getChannelId());
|
||||
|
||||
HttpConnectionParams.setConnectionTimeout(client.getParams(), 2 * 60 * 1000); // 2 minutes
|
||||
HttpConnectionParams.setSoTimeout(client.getParams(), 10 * 60 * 1000); // 10 minutes
|
||||
RequestConfig requestConfig = RequestConfig.custom()
|
||||
.setConnectTimeout(2 * 60 * 1000) // 2 minutes
|
||||
.setSocketTimeout(10 * 60 * 1000) // 10 minutes
|
||||
.build();
|
||||
HttpGet method = new HttpGet(episode.getUrl());
|
||||
method.setConfig(requestConfig);
|
||||
|
||||
HttpResponse response = client.execute(method);
|
||||
try (CloseableHttpResponse response = client.execute(method)) {
|
||||
in = response.getEntity().getContent();
|
||||
|
||||
File file = getFile(channel, episode);
|
||||
@@ -595,7 +595,7 @@ public class PodcastService {
|
||||
podcastDao.updateEpisode(episode);
|
||||
deleteObsoleteEpisodes(channel);
|
||||
}
|
||||
|
||||
}
|
||||
} catch (Exception x) {
|
||||
LOG.warn("Failed to download Podcast from " + episode.getUrl(), x);
|
||||
episode.setStatus(PodcastStatus.ERROR);
|
||||
@@ -604,7 +604,6 @@ public class PodcastService {
|
||||
} finally {
|
||||
IOUtils.closeQuietly(in);
|
||||
IOUtils.closeQuietly(out);
|
||||
client.getConnectionManager().shutdown();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -43,12 +43,6 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.ResponseHandler;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.impl.client.BasicResponseHandler;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.params.HttpConnectionParams;
|
||||
|
||||
import org.libresonic.player.Logger;
|
||||
import org.libresonic.player.dao.AvatarDao;
|
||||
|
||||
@@ -19,16 +19,6 @@
|
||||
*/
|
||||
package org.libresonic.player.service;
|
||||
|
||||
import org.libresonic.player.Logger;
|
||||
import org.libresonic.player.domain.Version;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.ResponseHandler;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.impl.client.BasicResponseHandler;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.params.HttpConnectionParams;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@@ -40,6 +30,17 @@ import java.util.Date;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.http.client.ResponseHandler;
|
||||
import org.apache.http.client.config.RequestConfig;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.impl.client.BasicResponseHandler;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
|
||||
import org.libresonic.player.Logger;
|
||||
import org.libresonic.player.domain.Version;
|
||||
|
||||
/**
|
||||
* Provides version-related services, including functionality for determining whether a newer
|
||||
* version of Libresonic is available.
|
||||
@@ -231,25 +232,22 @@ public class VersionService {
|
||||
*/
|
||||
private void readLatestVersion() throws IOException {
|
||||
|
||||
HttpClient client = new DefaultHttpClient();
|
||||
HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000);
|
||||
HttpConnectionParams.setSoTimeout(client.getParams(), 10000);
|
||||
RequestConfig requestConfig = RequestConfig.custom()
|
||||
.setConnectTimeout(10000)
|
||||
.setSocketTimeout(10000)
|
||||
.build();
|
||||
HttpGet method = new HttpGet(VERSION_URL + "?v=" + getLocalVersion());
|
||||
method.setConfig(requestConfig);
|
||||
String content;
|
||||
try {
|
||||
|
||||
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||
ResponseHandler<String> responseHandler = new BasicResponseHandler();
|
||||
content = client.execute(method, responseHandler);
|
||||
|
||||
} finally {
|
||||
client.getConnectionManager().shutdown();
|
||||
}
|
||||
|
||||
BufferedReader reader = new BufferedReader(new StringReader(content));
|
||||
Pattern finalPattern = Pattern.compile("LIBRESONIC_FULL_VERSION_BEGIN(.*)LIBRESONIC_FULL_VERSION_END");
|
||||
Pattern betaPattern = Pattern.compile("LIBRESONIC_BETA_VERSION_BEGIN(.*)LIBRESONIC_BETA_VERSION_END");
|
||||
|
||||
try {
|
||||
try (BufferedReader reader = new BufferedReader(new StringReader(content))) {
|
||||
String line = reader.readLine();
|
||||
while (line != null) {
|
||||
Matcher finalMatcher = finalPattern.matcher(line);
|
||||
@@ -265,8 +263,6 @@ public class VersionService {
|
||||
line = reader.readLine();
|
||||
}
|
||||
|
||||
} finally {
|
||||
reader.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+10
-10
@@ -24,15 +24,15 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.http.NameValuePair;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.ResponseHandler;
|
||||
import org.apache.http.client.config.RequestConfig;
|
||||
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.client.methods.HttpUriRequest;
|
||||
import org.apache.http.impl.client.BasicResponseHandler;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.message.BasicNameValuePair;
|
||||
import org.apache.http.params.HttpConnectionParams;
|
||||
|
||||
import org.libresonic.player.Logger;
|
||||
import org.libresonic.player.util.Pair;
|
||||
@@ -82,24 +82,24 @@ public class SonosServiceRegistration {
|
||||
for (Pair<String, String> parameter : parameters) {
|
||||
params.add(new BasicNameValuePair(parameter.getFirst(), parameter.getSecond()));
|
||||
}
|
||||
|
||||
RequestConfig requestConfig = RequestConfig.custom()
|
||||
.setConnectTimeout(20 * 1000) // 20 seconds
|
||||
.setSocketTimeout(20 * 1000) // 20 seconds
|
||||
.build();
|
||||
HttpPost request = new HttpPost(url);
|
||||
request.setConfig(requestConfig);
|
||||
request.setEntity(new UrlEncodedFormEntity(params, StringUtil.ENCODING_UTF8));
|
||||
|
||||
return executeRequest(request);
|
||||
}
|
||||
|
||||
private String executeRequest(HttpUriRequest request) throws IOException {
|
||||
HttpClient client = new DefaultHttpClient();
|
||||
HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000);
|
||||
HttpConnectionParams.setSoTimeout(client.getParams(), 10000);
|
||||
|
||||
try {
|
||||
|
||||
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||
ResponseHandler<String> responseHandler = new BasicResponseHandler();
|
||||
return client.execute(request, responseHandler);
|
||||
|
||||
} finally {
|
||||
client.getConnectionManager().shutdown();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user