Sé que somos muchos los que actualmente desarrollamos aplicaciones para Android, por eso hoy os traigo el código que he utilizado para conectar mi aplicación con una Base de Datos MySQL de forma remota a través del protocolo HTTP:
public class MainActivity extends Activity { Button buttonEntrar; TextView textResult; EditText et; HttpPost httppost; StringBuffer buffer; HttpResponse response; HttpClient httpclient; List<NameValuePair> nameValuePairs; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et = (EditText) findViewById(R.id.editText_user); buttonEntrar = (Button) findViewById(R.id.button_send); textResult = (TextView) findViewById(R.id.textView_result); buttonEntrar.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { final ProgressDialog p = new ProgressDialog(v.getContext()).show(v.getContext(),"Waiting for Server", "Accessing Server"); Thread thread = new Thread() { @Override public void run() { try{ httpclient=new DefaultHttpClient(); httppost= new HttpPost("http://pidb.no-ip.org/connection.php"); // make sure the url is correct. //add your data nameValuePairs = new ArrayList<NameValuePair>(1); // Always use the same variable name for posting i.e the android side variable name and php side variable name should be similar, nameValuePairs.add(new BasicNameValuePair("Edittext_value",et.getText().toString().trim())); // $Edittext_value = $_POST['Edittext_value']; httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); //Execute <span id="IL_AD6" class="IL_AD">HTTP Post</span> Request response=httpclient.execute(httppost); ResponseHandler<String> responseHandler = new BasicResponseHandler(); final String response = httpclient.execute(httppost, responseHandler); System.out.println("Response : " + response); runOnUiThread(new Runnable() { public void run() { p.dismiss(); textResult.setText("Response from PHP : " + response); } }); }catch(Exception e){} } }; thread.start(); } }); } }
Esta Activity se conectará al servidor que aloja base de datos y se dirigirá al archivo connection.php pasándole con el método POST de http la sentencia SQL que se desee ejecutar en la variable a la que he llamado SENTENCIA, por php recogeré esa variable y en el lado del servidor se ejecutará dicha sentencia, realmente la aplicación no accede directamente a la Base de Datos, sino que es nuestro servidor Apache quien lo hará. Recordad que se puede pasar más de una variable por PHP separándolas con el símbolo &.
Probado y funcionando, para la próxima pondré como recoger variables POST con PHP. ¡Un saludo!
No hay comentarios:
Publicar un comentario