2016-03-22 22 views
-1
public class GecodeFuncation { 

public static String getLatLongByURL(String requestURL) { 
    URL url; 
    String response = ""; 
    try { 
     url = new URL(requestURL); 

     HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
     conn.setReadTimeout(15000); 
     conn.setConnectTimeout(15000); 
     conn.setRequestMethod("GET"); 
     conn.setDoInput(true); 
     conn.setRequestProperty("Content-Type", 
       "application/x-www-form-urlencoded"); 
     conn.setDoOutput(true); 
     int responseCode = conn.getResponseCode(); 

     if (responseCode == HttpsURLConnection.HTTP_OK) { 
      String line; 
      BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
      while ((line = br.readLine()) != null) { 
       response += line; 
      } 
     } else { 
      response = ""; 
     } 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return response; 
    } 
} 

Nesne format içinde olduğunu: AşağıdakiDeğer pas ben bu şekilde AsyncTask excuting am android

new GeocodeImplementation().execute("D-109 3rd floor ShakarPur Laxmi Nagar New Delhi 110092".replace(" ","%20")); 

benim AsyncTask geçerli:

class GeocodeImplementation extends AsyncTask<String, Void, String[]> { 
     ProgressDialog dialog = new ProgressDialog(DataEntry.this); 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      dialog.setMessage("Please wait..."); 
      dialog.setCanceledOnTouchOutside(false); 
      dialog.show(); 
     } 

     @Override 
     protected String[] doInBackground(String... params) { 
      String response; 
      try { 
       response = GecodeFuncation.getLatLongByURL("http://maps.google.com/maps/api/geocode/json?address="+params+"&sensor=false"); 
       Log.d("response",""+response); 
       return new String[]{response}; 
      } catch (Exception e) { 
       return new String[]{"error"}; 
      } 
     } 

     @Override 
     protected void onPostExecute(String... result) { 
      try { 
       JSONObject jsonObject = new JSONObject(result[0]); 

       double lng = ((JSONArray)jsonObject.get("results")).getJSONObject(0) 
         .getJSONObject("geometry").getJSONObject("location") 
         .getDouble("lng"); 

       double lat = ((JSONArray)jsonObject.get("results")).getJSONObject(0) 
         .getJSONObject("geometry").getJSONObject("location") 
         .getDouble("lat"); 

       Log.d("latitude", "" + lat); 
       Log.d("longitude", "" + lng); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
      if (dialog.isShowing()) { 
       dialog.dismiss(); 
      } 
     } 
    } 

Sonra AsyncTask adresi geçmesi URL:

http://maps.google.com/maps/api/geocode/json?address=[Ljava.lang.String;@41fff330&sensor=false

o

http://maps.google.com/maps/api/geocode/json?address=D-109%203rd%20floor%20ShakarPur%20Laxmi%20Nagar%20New%20Delhi%20110092&sensor=false

yüzden ben yanlış yapıyorum nerede Tepki söyle lütfen alabilirsiniz olması gerekirken

Yani Yanıtı alamıyor. Böyle aynı görevi yürütmek

+0

parametreler, bir dize ... ya o bir varargs (Strings dizisi) değil, bir dize incelenmediği anlamına gelir param [0] –

+0

parametrelerini kullanarak ilk konumunuzda depolanan URL'nize erişmek için nasıl davranırsınız –

+0

Bu gibi: response = GecodeFuncation.getLatLongByURL ("url" + params [0] + "& sensor = false"); her şeyin aynı kalmasına izin verin. –

cevap

0

: Eğer varsa o kadar

tepki =

GecodeFuncation.getLatLongByURL("http://maps.google.com/maps/api/geocode/json?address="+params[0]+"&sensor=false");