Envío una solicitud POST a un servidor desde mi aplicación Android. El servidor se desarrolla utilizando Spring Framework. El servidor recibe la solicitud pero el parámetro que estaba enviando es nulo/vacío (se muestra en el registro).Recepción de solicitud POST en el servidor (Spring Framework) desde la aplicación Android
El código utilizado para enviar solicitud POST es:
DefaultHttpClient hc=new DefaultHttpClient();
ResponseHandler <String> res=new BasicResponseHandler();
String postMessage = "json String";
HttpPost postMethod=new HttpPost("http://ip:port/event/eventlogs/logs");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("json", postMessage));
postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
hc.execute(postMethod,res);
También he tratado de establecer HttpParams de la siguiente manera pero también ha fallado:
HttpParams params = new BasicHttpParams();
params.setParameter("json", postMessage);
postMethod.setParams(params);
El código del lado del servidor que recibió este solicitud es:
@RequestMapping(value = "/eventlogs/logs", method = RequestMethod.POST)
public String logs(@ModelAttribute("json") String json) {
logger.debug("Received POST request:" + json);
return null;
}
El registrador de mensajes que estoy tala espectáculos:
Received POST request:
¿Alguna idea que me falta aquí?
Y en el cliente especifica los parámetros como la entidad de la solicitud. Especificarlos como setParams aún no funcionará. –
Tengo el mismo problema. cuando hago lo que dice, obtengo org.springframework.web.bind.MissingServletRequestParameterException: Required El parámetro entero 'channel' no está presente. Estoy enviando el parámetro del cliente de Android con el nombre básico valuepair. ¿Puede usted ayudar? – Emilla
@Emilla es posible que su parámetro se pueda perder, luego márquelo como obligatorio = falso.Ver esta respuesta http://stackoverflow.com/a/3466851/867475 – rizzz86