У меня есть расширение для коммерческого приложения, которое связано с версией 4.0.3 httpclient.Если я пытаюсь использовать более поздние версии, расширение не работает.Если я использую версию 4.0.3 в моем коде, это так.Я хочу закрыть HttpClient, но не могу найти механизм для этого.
Мой верхний класс - SwingWorker, который расширяется различными подклассами в зависимости от URL-адреса, к которому осуществляется доступ.
public class GetPrices extends SwingWorker<List<StockPrice>,Integer> {
private HttpClient client = new DefaultHttpClient();
List<StockPrice> lstStock;
MRBDebug objDebug = MRBDebug.getInstance();
public GetPrices (final List<StockPrice> lstStockp) {
lstStock = lstStockp;
}
@Override
protected List<StockPrice> doInBackground() throws Exception {
int iValue = lstStock.size();
int iProgress = 0;
int iPrevious = 0;
for (StockPrice spLine : lstStock) {
try {
GetPrices.failIfInterrupted();
getData(client, spLine);
iProgress++;
}
catch (IOException a) {
iProgress++;
}
catch (InterruptedException a) {
iProgress++;
}
int iTemp =iProgress * 100 / iValue;
setProgress( iTemp);
}
return lstStock;
}
// Can safely update the GUI from this method.
@Override
protected void done() {
List<StockPrice> spListp;
try {
// Retrieve the return value of doInBackground.
lstStock = get();
setProgress(100);
} catch (InterruptedException e) {
// This is thrown if the thread's interrupted.
} catch (ExecutionException e) {
// This is thrown if we throw an exception
// from doInBackground.
}
}
Один из подклассов:
public class GetYahooPrices extends GetPrices{
private MRBDebug objDebug;
public GetYahooPrices (List<StockPrice> lstStock) {
super(lstStock);
}
@Override
public void getData(HttpClient client, StockPrice spPrice) throws IOException {
objDebug = MRBDebug.getInstance();
String strStock = spPrice.getTicker();
try {
URI uri = new URL("https://finance.yahoo.com/quote/" + strStock + "?p=" + strStock).toURI();
HttpGet httpGet = new HttpGet(uri);
HttpResponse httpResponse = client.execute(httpGet);
HttpEntity entity = httpResponse.getEntity();
InputStream stream = entity.getContent();
Я хочу закрыть HttpCLient после завершения всех обращений к URL, но не могу найти ничего, что делает это с версией 4.0.3.Кто-нибудь может указать мне правильное направление?