2017-01-04 4 views
0

Это дает ошибкуHTTP URL соединения для извлечения данных андроида

Error:(57, 16) error: cannot find symbol class HttpResponseException

Я реализовал этот код, но большинство библиотек устарели и не могу найти какое-либо решение.

Доступен ли обновленный код для получения сведений об этом месте с помощью google api.

код приведен ниже:

public class GooglePlaces 
{ 
private static final HttpTransport HTTP_TRANSPORT=new NetHttpTransport(); 

private static final String API_KEY="Myapikey"; 

private static final String PLACES_SEARCH_URL="https://maps.googleapis.com/maps/api/place/search/json?"; 
private static final String PLACES_TEXT_SEARCH_URL="https://maps.googleapis.com/maps/api/place/search/json?"; 
private static final String PLACES_DETAILS_URL="https://maps.googleapis.com/maps/api/place/details/json?"; 

private double _latitude; 
private double _longitude; 
private double _radius; 

public PlacesList search(double latitude, double longitude,double radius, String types) throws Exception 
{ 
    this._latitude=latitude; 
    this._longitude=longitude; 
    this._radius=radius; 

    try 
    { 
     HttpRequestFactory httpRequestFactory =createRequestFactory(HTTP_TRANSPORT); 
     HttpRequest request=httpRequestFactory 
       .buildGetRequest(new GenericUrl (PLACES_SEARCH_URL)); 
     request.getUrl().put("key",API_KEY); 
     request.getUrl().put("location",_latitude+","+_longitude); 
     request.getUrl().put("radius",_radius); 
     request.getUrl().put("sensor",false); 
     if(types!=null) 
      request.getUrl().put("types",types); 

     PlacesList list=request.execute().parseAs(PlacesList.class); 

     Log.d("Places Status",""+list.status); 
     return list; 
    } 
    catch (HttpResponseException e) 
    { 
     Log.e("Error:",e.getMessage()); 
     return null; 
    } 
} 

public PlaceDetails getPlaceDetails(String reference) throws Exception 
{ 
    try 
    { 
     HttpRequestFactory httpRequestFactory = createRequestFactory(HTTP_TRANSPORT); 
     HttpRequest request=httpRequestFactory 
       .buildGetRequest(new GenericUrl(PLACES_DETAILS_URL)); 
     request.getUrl().put("key",API_KEY); 
     request.getUrl().put("reference",reference); 
     request.getUrl().put("sensor","false"); 

     PlaceDetails place = request.execute().parseAs(PlaceDetails.class); 
     return place; 
    } 
    catch (HttpResponseException e) 
    { 
     Log.e("Error in Place Details",e.getMessage()); 
     throw e; 
    } 
} 

public static HttpRequestFactory createRequestFactory(
     final HttpTransport transport) 
{ 
    return transport.createRequestFactory(new HttpRequestInitializer() 
    { 
     public void initialize(HttpRequest request) 
     { 
      GoogleHeaders headers=new GoogleHeaders(); 
      headers.setApplicationName("PocketAmbulance"); 
      request.setHeadres(headers); 
      JSONObjectParser parser=new JsonHttpParser(new JacksonFactory()); 
      request.addParser(parser); 
     } 
    }); 
    } 
} 

ответ

0

HttpClient осуждался в уровне 22 API и удалены в уровне API 23. Если вы все еще хотите использовать его, добавьте это на Gradle файл наследие библиотеки

android { 
    useLibrary 'org.apache.http.legacy' 
}