En la aplicacion que estoy desarrollando necesito llamar a un action de otra aplicacion para que siga desde esa aplicacion. El problema es que esa aplicacion debe de recibir 3 parametros, y todos ellos por post, ya que los parametros son muy grandes y exceden del limite de 256caracteres de las urls.
Para ello he utilizado la libreria commons-httpclient-2.0.2.
Código PHP:
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(Q70ListenerUtils
.getApplicationProperty("URL_NOTIFICACIONES_PENDIENTES"));
//crear xml de data
String strData=fncGetData(contexto);
//crear firma
String strSignature=fncGetFirma(strData.getBytes());
method.addParameter("signed_security_data",strData);
method.addParameter("signature",strSignature);
method.addParameter("fileName", "");
System.out.println("antes llamar");
System.out.println(Q70ListenerUtils
.getApplicationProperty("URL_NOTIFICACIONES_PENDIENTES"));
System.out.println(strData);
System.out.println(strSignature);
client.executeMethod(method);
System.out.println("RESPUESTA:" + method.getResponseBodyAsString());
response.getOutputStream().write(method.getResponseBody());
Creo los parametros, y creo el metodo post metiendole los parametros. Luego ejecuto el metodo, y si retorno el churro de bytes me aparece en el navegador correctamente. Bueno correctamente no ya que como solo me retorna la respuesta, solo me baja el html, sin el css y js asociados como es natural, por lo q se ve sin estilos. Ademas como mando por el response, pues no me cambia la aplicacion y se queda en la mia, por lo que los links que aparecen en la pagina resultado, no funcionan ya que acceden a actions de otra aplicacion.
He intentado utilizar el
Código PHP:
response.sendRedirect(Q70ListenerUtils.getApplicationProperty("URL_NOTIFICACIONES_PENDIENTES"));
y esto lo hace bien, solo q aki no puedo añadire parametros por post, solo por get, añadiendoselos ala url. Pero como los parametros son muy largos no es una url valida, y si no se los mado como ese action necesita esos 3 parametros pues se keda en una pagina de error.
saludos