Post to PHP via Applet
Hola, alguien me puede echar una mano? hice un formulario en un Applet y quiero madar esas variables a una pagina php. y tnego el siguiente codigo:
int i, n;
try {
// Construct data BR> String data = URLEncoder.encode("key1", "UTF-8") + "=" +
//URLEncoder.encode("value1", "UTF-8");
if(masculino.isSelected()){
data1 = "&sex=Masculino";
}else if(femen.isSelected()){
data1 = "&sex=Femenino";
}
data2 = "&weight="+pesso.getText();
data3 = "&large="+esttatura.getText();
if(fisicaS.isSelected()){
data4 = "&workout=Si";
}else if(fisicaN.isSelected()){
data4 = "&workout=No";
}
if(alimentacionS.isSelected()){
data5 = "&sugar=Si";
}else if(alimentacionN.isSelected()){
data5 = "&sugar=No";
}
if(insulinaS.isSelected()){
data6 = "&insulin=Si";}
else if(insulinaN.isSelected()){
data6 = "&insulin=No";}
// Send data
URL url = new URL("http://www.eiscg.co.cc/registrar.php");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data1);
//wr.flush();
wr.write(data2);
//wr.flush();
wr.write(data3);
//wr.flush();
wr.write(data4);
//wr.flush();
wr.write(data5);
//wr.flush();
wr.write(data6);
wr.flush();
wr.close()
// Get the response
n=0;
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line[n] = rd.readLine()) != null){
n=n+1;
}
;
rd.close();
} catch (Exception e) {
}
for (int j = 0; j < line.length; j++) {
System.out.println(line[j]);
}}
}
y mi codigo php es:
<head>
<title>Checking</title>
</head>
<body>
<?php
$conexion=mysql_connect("mysql4.000webhost.com","pepe","juanito") or
die("Problemas en la conexion");
mysql_select_db("miDB",$conexion) or
die("Problemas en la seleccion de la base de datos");
mysql_query("insert into insulina (sexo, peso, estatura, ejercicio, muchaAzucar, efectosInsulina) values ('$_REQUEST[sex]', '$_REQUEST[weight]', '$_REQUEST[large]', '$_REQUEST[workout]', '$_REQUEST[sugar]', '$_REQUEST[insulin]')", $conexion) or
die("Problemas en el select".mysql_error());
mysql_close($conexion);
?>
</body>
</html>
Pero no me registra nada :S
- Inicie sesión o regístrese para enviar comentarios
content-length
Tal vez el web server requiere que le digas cuánto miden tus datos... te recomiendo un refactoring de ese código, mejor usa un StringBuilder al que le vayas pegando los datos que vas a enviar, así al abrir la conexión puedes fijar el content-length. Y tal vez también necesitas fijar el tipo de contenido que estás enviando. Algo así:
if (masculino.isSelected()) {
sb.append("Masculino");
} else {
sb.append("Femenino");
}
sb.append("&weight=").append(peso.getText());
sb.append("&large=").append(estatura.getText());
//etc
URLConnection conn = //blabla
wr.write(sb.toString());
wr.flush();
wr.close();
//Leer los datos
conn.setRequestProperty("Content-Length", Integer.toString(sb.length()));
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");