From 9067f6f540441b839584ff90e5ff858f5433f0c7 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Thu, 25 Jun 2015 10:43:58 +1200 Subject: Use Apache HTTP client --- pom.xml | 5 ++++ src/org/traccar/geocode/JsonReverseGeocoder.java | 34 +++++++++++++++--------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/pom.xml b/pom.xml index 8b8b80e79..f1a4c55d1 100644 --- a/pom.xml +++ b/pom.xml @@ -45,6 +45,11 @@ netty 3.10.1.Final + + org.apache.httpcomponents + httpclient + 4.5 + org.glassfish javax.json diff --git a/src/org/traccar/geocode/JsonReverseGeocoder.java b/src/org/traccar/geocode/JsonReverseGeocoder.java index 684bfa0c1..3f5fe8bed 100644 --- a/src/org/traccar/geocode/JsonReverseGeocoder.java +++ b/src/org/traccar/geocode/JsonReverseGeocoder.java @@ -15,15 +15,17 @@ */ package org.traccar.geocode; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; import org.traccar.helper.Log; import javax.json.Json; import javax.json.JsonObject; +import javax.json.JsonReader; import java.io.InputStreamReader; -import java.io.Reader; -import java.net.HttpURLConnection; -import java.net.URL; -import java.net.URLConnection; public abstract class JsonReverseGeocoder implements ReverseGeocoder { @@ -37,21 +39,29 @@ public abstract class JsonReverseGeocoder implements ReverseGeocoder { public String getAddress(AddressFormat format, double latitude, double longitude) { try { - HttpURLConnection conn = (HttpURLConnection) new URL(String.format(url, latitude, longitude)).openConnection(); + CloseableHttpClient httpClient = HttpClients.createDefault(); try { - Reader reader = new InputStreamReader(conn.getInputStream()); + CloseableHttpResponse response = httpClient.execute(new HttpGet(String.format(url, latitude, longitude))); try { - Address address = parseAddress(Json.createReader(reader).readObject()); - if (address != null) { - return format.format(address); + HttpEntity entity = response.getEntity(); + if (entity != null) { + JsonReader reader = Json.createReader(new InputStreamReader(entity.getContent())); + try { + Address address = parseAddress(reader.readObject()); + if (address != null) { + return format.format(address); + } + } finally { + reader.close(); + } } } finally { - reader.close(); + response.close(); } } finally { - conn.disconnect(); + httpClient.close(); } - } catch(Exception error) { + } catch (Exception error) { Log.warning(error); } -- cgit v1.2.3