1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Android e PHP e MySQL

Tenho o seguinto código php:

<?php
$bdServidor = '127.0.0.1';
$bdUsuario = 'User';
$bdSenha = 'cacacaca';
$bdBanco = 'teste';

$conexao = mysqli_connect($bdServidor, $bdUsuario, $bdSenha, $bdBanco);

//retrieve the data
$latitude = $_POST['lat'];
$longitude = $_POST['lon'];

$sql = "INSERT INTO tarefas (latitude, longitude) VALUES('$lat', '$lon')";

if (!mysqli_query($conexao, $sql))
{
    echo "Problemas para conectar no banco. Verifique os dados!";
    die();
}
else
{
    echo "1 record added";
}

?>

E o seguinte codigo em java:

package com.example.teste;

import java.io.InputStream;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.webkit.WebView;
import android.widget.TextView;

public class MainActivity extends Activity {

    private LocationManager locationManager;
    private TextView latitude, longitude, provedor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.localizacao);

    }



    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);

    public void postData(View v)
    {
        nameValuePairs.add(new BasicNameValuePair("lat","19.80"));
        nameValuePairs.add(new BasicNameValuePair("lon","13.22"));

        //http post
        try{
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new      
            HttpPost("http://localhost:8080/test.php");
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            InputStream is = entity.getContent();
            Log.i("postData", response.getStatusLine().toString());
        }

        catch(Exception e)
        {
            Log.e("log_tag", "Error in http connection "+e.toString());
        }           
    }

}

Mas recebo o seguinte erro quando clico no botão:

Error in http connection android.os.NetworkOnMainThreadException

Como resolver?

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags android php mysql xml ou faça a sua própria pergunta.