Aquí está lo que tú necesitas hacer:
- Obtenga el HttpClient de Apache, esto le permitiría realizar la solicitud requerida
- Cree una solicitud HttpPost con ella y agregue el encabezado "application / x-www-form-urlencoded"
- Cree una StringEntity que le pasará JSON
- Ejecutar la llamada
El código se ve más o menos así (aún tendrá que depurarlo y hacerlo funcionar)
//Deprecated
//HttpClient httpClient = new DefaultHttpClient();
HttpClient httpClient = HttpClientBuilder.create().build(); //Use this instead
try {
HttpPost request = new HttpPost("http://yoururl");
StringEntity params =new StringEntity("details={\"name\":\"myname\",\"age\":\"20\"} ");
request.addHeader("content-type", "application/x-www-form-urlencoded");
request.setEntity(params);
HttpResponse response = httpClient.execute(request);
//handle response here...
}catch (Exception ex) {
//handle exception here
} finally {
//Deprecated
//httpClient.getConnectionManager().shutdown();
}
Puede utilizar la biblioteca Gson para convertir sus clases de Java en objetos JSON.
Cree una clase pojo para las variables que desea enviar según el ejemplo anterior
se convierte
una vez que establezca las variables en la clase pojo1, puede enviarlas usando el siguiente código
y estas son las importaciones
y para GSON
fuente
La respuesta de @momo para Apache HttpClient, versión 4.3.1 o posterior. Estoy usando
JSON-Java
para construir mi objeto JSON:fuente
Probablemente sea más fácil usar HttpURLConnection .
http://www.xyzws.com/Javafaq/how-to-use-httpurlconnection-post-data-to-web-server/139
Utilizará JSONObject o lo que sea para construir su JSON, pero no para manejar la red; necesita serializarlo y luego pasarlo a una conexión HttpURLConnection a POST.
fuente
j.toString()
.fuente
Prueba este código:
fuente
application/json
tanto como encabezado de aceptación como tipo de contenidoDefaultHttpClient
está en desuso.Encontré esta pregunta buscando una solución sobre cómo enviar una solicitud de publicación desde el cliente de Java a Google Endpoints. Las respuestas anteriores, muy probablemente correctas, pero no funcionan en el caso de Google Endpoints.
Solución para puntos finales de Google.
El encabezado de tipo de contenido debe establecerse en "application / json".
Seguro que también se puede hacer usando HttpClient.
fuente
Puede usar el siguiente código con Apache HTTP:
Además, puede crear un objeto json y poner campos en el objeto como este
fuente
Para Java 11 puede usar un nuevo cliente HTTP :
Puede usar el editor desde InputStream, String, File. Convierte JSON a String o IS con Jackson.
fuente
Java 8 con apache httpClient 4
fuente
Recomiendo http-request basado en apache http api.
Si desea enviar
JSON
como cuerpo de solicitud puede:Recomiendo leer la documentación antes de usar.
fuente