¿Cómo configuro el cuerpo de un HttpPut en Android? (sin agregar bibliotecas)

Quiero subir algunos datos de una aplicación de Android a Pachube.

[Actualización: Para la gente leyendo esto en 2013, "Pachube" se convirtió en "Cosm", que ahora es "Xively".]

Este lanzamiento es proporcionado por su documentación como un ejemplo.

¿Cómo puedo lograr esto con la implementación de HttpPut (o HttpPost) de Android?

Realmente no quiero tener que agregar bibliotecas adicionales, ya que quiero mantener la aplicación lo más pequeña posible.

Ya tengo un JSONObject con mis datos en él.

Aquí hay un pseudocódigo. Tenga en cuenta que no debe enviar datos url codificados formulario en una solicitud PUT, ya que puede romper servidor OAuth (si se utiliza):

HttpClient client = new DefaultHttpClient(); HttpPut put = new HttpPut(url); put.addHeader("Content-Type", "application/json"); put.addHeader("Accept", "application/json"); put.setEntity(new StringEntity(jsonObj.writeValue())); HttpResponse response = client.execute(put); 

Una forma de hacerlo en Java / Android sin bibliotecas adicionales es:

 URL url = new URL("http://www.example.com/whatever"); HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); httpCon.setDoOutput(true); httpCon.setRequestMethod("PUT"); OutputStreamWriter out = new OutputStreamWriter(httpCon.getOutputStream()); out.write("Data you want to put"); // for example your JSON object out.close(); 

ACTUALIZACIÓN – según los comentarios:

puede obtener la respuesta por ejemplo llamando httpCon.getInputStream() y / o httpCon.getErrorStream() etc.

  • Android y GSON lanzando No-Args Constructor no encontrado excepción
  • Fuente no encontrada Android?
  • Android - Cómo convertir la cadena en utf-8 en android
  • Cómo ampliar Android TableLayout
  • ¿Cómo iniciar la actividad en el adaptador?
  • Cordova Plugin error de la cámara en el paquete
  • Eclipse JUNO + ADT 23.0.2 Recursos $ NotFoundException
  • No detener el bucle con super.oncreate () y extender MainActivity
  • Actualización de Xamarin hace que "el archivo de clase tenga versión incorrecta 52.0, debe ser 50.0" error
  • Implementación de la configuración de ahorro
  • FilenameFilter, buscando carpetas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.