Hola buenas noches, viendo foros y foros siempre con el mismo resultado, me lanzo a la piscina y publico mi problema para ver si alguna persona caritativa me ayuda.
Mi problema es el siguiente, estoy intentando hacer una aplicación android en eclipse, mi emulador es la versión 4.0.3. Intento mostrar en la interfaz del emulador un sencillo script escrito en PHP que conecta a una base de datos. El gestor de mi base de datos es PostGres (versión más nueva).
Os paso el código de mi script :
<?php
$cadena = " host=localhost port=5432 dbname=bdVille user=postgres password = postgres";
$conn = pg_connect($cadena); //or die ("Error de conexion". pg_last_error());
$sql = " SELECT idville, nom_ville FROM tblville
";
$pg=pg_query($sql);
while($row=pg_fetch_assoc($pg))
$output[]=$row;
print(json_encode($output));
?>
Como podéis ver, muestro gracias a mi soporte PHP , el cual es Zend Server ( el único que encontré que no me daba problemas con el PostGres ) el contenido de la base de datos en formato JSON, que después lo utilizaré para ''manipularlo'' en eclipse y mostrármelo en mi emulador android.
Ahí va mi código de eclipse de la aplicación:
package ville.prueba;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
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 org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.LinearLayout;
import android.widget.TextView;
public class VilleActivity extends Activity {
/** Called when the activity is first created. */
TextView txt ;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout rootLayout = new LinearLayout(getApplicationContext()) ;
txt = new TextView(getApplicationContext());
rootLayout.addView(txt);
setContentView(rootLayout);
txt.setText("Connexion...");
txt.setText(getServerData(url));
}
public static final String url = "http://10.0.2.2/ville.php" ;
private String getServerData(String returnString){
InputStream input = null;
String result = "";
//CONECTARSE CON EL SCRIPT PHP
try{
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpResponse response = httpClient.execute(httpPost);
Log.v("CONEXION ? : ", response.toString()) ;
HttpEntity entity = response.getEntity();
input = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection " + e.toString());
}
//TRATAR EL RESULTADO DE LA CONSULTA
//----PASAMOS LA CONSULTA A STRING
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(input,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
input.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result " + e.toString());
}
//----TRATAMOS EL RESULTADO JSON
try{
JSONArray jArray = new JSONArray(result);
for(int i = 0 ; i < jArray.length() ; i++){
JSONObject jsonObject = jArray.getJSONObject(0);
Log.i( "ID du ville", "ID ville:"+jsonObject.getInt("idville")+", nom de la ville:"
+jsonObject.getString("nom_ville") );
returnString += "\n\t" + jArray.getJSONObject(i);
}
}catch(Exception e){
Log.e("log_tag", "Error converting result " + e.toString());
}
return result;
}
}
El archivo ville.php lo muestro correctamente en mi explorador gracias al Zend Server (escribiendo localhost/ville.php).
Mi problema viene cuando arranco el emulador, miro en el LogCat y me sale la excepción la famosa HttpHostConnection refused o yo que sé.
Tras dias investigando supongo que será a la hora de mi public static final String url = "http://10.0.2.2/ville.php" ;.
He probado con localhost, 127.0.01, 10.0.2.2, mi ip local, poniendo puertos, etc etc etc y más locuras jaja...
TODA RESPUESTA ES BIENVENIDA, MUCHÍSIMAS GRACIAS A TODOS DE ANTEMANO !
AYUDADME PORFAVOR, ME ESTOY VOLVIENDO LOCO