Cómo enviar datos al servidor en android

Quiero enviar latitud y longitud de forma cíclica en mi aplicación. Esta es la función que obtiene estos parámetros usando GPS

private void showLocation(Location location) { String latitude = "Latitude: "; String longitude = "Longitude: "; if (location != null) { latitude += location.getLatitude(); longitude += location.getLongitude(); } } 

Estaba buscando métodos en la web, encontré algunos pero no funcionó y está obsoleto

 public void sendData(double latitude, double longitude){ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://192.xxx:8080/run/mypage.php"); try { List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("Latitude", Double.toString(latitude))); nameValuePairs.add(new BasicNameValuePair("Longitude", Double.toString(longitude))); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); httpclient.execute(httppost); } catch (ClientProtocolException e) { // TODO Auto-generated catch block } catch (IOException e) { // TODO Auto-generated catch block } } 

Gracias de antemano 4 ayuda

Te recomiendo que uses la biblioteca OkHttp para trabajar en red. Su ejemplo podría ser algo como esto

 private final OkHttpClient client = new OkHttpClient(); public String sendData(double latitude, double longitude){ try { RequestBody formBody = new FormBody.Builder() .add("Latitude", Double.toString(latitude)) .add("Longitude", Double.toString(longitude)) .build(); Request request = new Request.Builder() .url("http://httpbin.org/post") .post(formBody) .build(); Response response = client.newCall(request).execute(); return response.body().string(); } catch (IOException e) { return "Error: " + e.getMessage(); } } 

No olvide ejecutar el código de red en un AsyncTask

 class IOAsyncTask extends AsyncTask<Location, Void, String> { @Override protected String doInBackground(Location... params) { return sendData(params[0].getLatitude(), params[0].getLongitude()); } @Override protected void onPostExecute(String response) { Log.d("networking", response); } } 

Y este podría ser el método onCreate de tu actividad

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Location current = new Location(""); current.setLatitude(23.9569596); current.setLongitude(12.567567); new IOAsyncTask().execute(current); } 

Tenga en cuenta que utilizo http://httpbin.org/post como dirección remota, debe reemplazarla con su URL de punto final. En mi caso la respuesta es:

 { "args": {}, "data": "", "files": {}, "form": { "Latitude": "23.9569596", "Longitude": "12.567567" }, "headers": { "Accept-Encoding": "gzip", "Content-Length": "39", "Content-Type": "application/x-www-form-urlencoded", "Host": "httpbin.org", "User-Agent": "okhttp/3.0.1" }, "json": null, "origin": "xxx.xx.xxx.xx", "url": "http://httpbin.org/post" } 
  • ¿Cómo utilizar la cámara para tomar la foto en un servicio de fondo en Android?
  • Error: Error al capturar la instantánea de los archivos de salida de la tarea 'transformClassesWithDexForDebug' durante el cheque actualizado
  • onclicklistener en el elemento específico de la recyclerview en android
  • ¿Por qué los emuladores de Android se numeran como 5554
  • No se puede encontrar la clase de símbolo "Generated" para Dagger 2
  • Android NoSuchField error en R.java después de que el proceso es matado
  • Cómo agregar iconos a elementos en un cajón de navegación
  • Intermitentes marcos lentos en Android OpenGL ES 2.0
  • Almacenamiento de mapa de bits en la tarjeta SD pérdida de la calidad de imagen
  • Compruebe si un tiempo determinado se encuentra entre dos veces independientemente de la fecha
  • Finalize () agotado el tiempo de espera después de 30 segundos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.