Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/11/2010, 08:55
joise
 
Fecha de Ingreso: octubre-2009
Mensajes: 11
Antigüedad: 14 años, 6 meses
Puntos: 0
Applet web POST a PHP

hola, tengo un problema, estuve buscando en google y no encontre la solucion asique ahora pruebo en el foro a ver si me pueden ayudar.
Quiero mandar datos POST hacia un archivo php en mi servidor (ej nombre=pepe&[email protected]&edad=23&ocupaci on=estudiante), de manera que pueda leer esas variables en el archivo php del modo $_POST['nombre'];, etc.
Asique invstigando en la web me encontre con el siguiente script:
Tengo lo siguiente:

En un archivo htm coloque el siguiente applet:
Código HTML:
<HTML>
<HEAD>
<TITLE>
HTML Test Page
</TITLE>
</HEAD>
<BODY>

<applet code="PostXml.class" width=170 height=150>

</applet>
</BODY>
</HTML> 
Luego en PostXml.java tengo lo siguiente:

Código:
import java.net.*;
import java.io.*;

public class PostXml {

  public static void main(String[] args) {

try {
// Construct data BR> String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
String data = "&nombre=jorge";

// Send data
URL url = new URL("http://localhost:80/java/index.php");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();

// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) System.out.println(line);
wr.close();
rd.close();
} catch (Exception e) {
}
  }
}
El archivo index.php tiene lo siguiente
Código PHP:
<?php
echo $_POST['nombre'];
echo 
'preba';
?>
el java se compila sin erroes con "javac PostXml.java" y me crea el PostXml.class.
Hasta ahi todo muy lindo. Lo que quiero hacer es que el enviar los datos me escriba en la pantallita del applet lo que envie (es decir el nombre + prueba).
El problema es que al ejecutar el archivo htm, me devuelve el siguiente error:
Código:
Java Plug-in 1.6.0_21
Using JRE version 1.6.0_21-b07 Java HotSpot(TM) Client VM
User home directory = C:\Documents and Settings\Jose
----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
l:   dump classloader list
m:   print memory usage
o:   trigger logging
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
x:   clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------


java.lang.reflect.InvocationTargetException
	at com.sun.deploy.util.DeployAWTUtil.invokeAndWait(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager.runOnEDT(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassCastException: PostXml cannot be cast to java.applet.Applet
	at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Exception: java.lang.reflect.InvocationTargetException
Y no tengo ni idea como solucionarlo.
Ejecuandolo desde Netbeans como una applicacion java (es decir: File/New Project/Java/Java Application) me devuelve el nombre + prueba, es decir funciona correctamente, pero no es una Java Application lo que yo quiero hacer. Mi intencion es agregarlo en una pagina web y es en la pagina web donde me sale el error.
Alguien me podria ayudar.

Desde ya muchas gracias.