2017-01-04 1 views
0

Il donne une erreurHttp Url connexion pour extraire des données Android

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

J'ai mis en œuvre ce code, mais la plupart des bibliothèques sont déconseillés et ne peut pas trouver une solution.

Est-ce que tout code mis à jour est disponible pour aller chercher les détails de l'endroit en utilisant google api.

Le code est donné ci-dessous:

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); 
     } 
    }); 
    } 
} 

Répondre

0

HttpClient a été dépréciée dans l'API de niveau 22 et retiré dans l'API de niveau 23. Si vous voulez continuer à l'utiliser, ajoutez votre fichier gradle la bibliothèque héritage

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