Avisos

Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 04/08/14, 16:42:02
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
problema login

saludos compañeros estoy intentando hacer un sistema de login desde un dispositivo a mi foro php , el caso es que via navegador la url que paso funciona bien pero desde android me tira errores , este es el código:

Código:
public class MainActivity extends Activity {
	TextView tx;
	EditText user, pass;
	Button but;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		tx = (TextView) findViewById(R.id.textView1);
		user = (EditText) findViewById(R.id.editText1);
		pass = (EditText) findViewById(R.id.editText2);
		but = (Button) findViewById(R.id.button1);
		but.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				connect();

			}
		});

	}

	public void connect() {

		try {
			String us = URLEncoder.encode(user.getText().toString(), "UTF-8");
			String passw = URLEncoder
					.encode(pass.getText().toString(), "UTF-8");
			String url = String
					.format("http://www.mipaginaweb.com/login.php?username=%s&password=%s",
							us, passw);

			postLoginData();

		} catch (UnsupportedEncodingException ex) {
			ex.printStackTrace();
		}

	}

	public void postLoginData() {
		// Create a new HttpClient and Post Header
		HttpClient httpclient = new DefaultHttpClient();

		/* login.php returns true if username and password is equal to saranga */
		HttpPost httppost = new HttpPost(
				"http://www.amsspecialist.com/login.php");

		try {
			// Add user name and password

			String username = user.getText().toString();

			String password = pass.getText().toString();

			List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
			nameValuePairs.add(new BasicNameValuePair("username", username));
			nameValuePairs.add(new BasicNameValuePair("password", password));
			httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

			// Execute HTTP Post Request
			Log.w("SENCIDE", "Execute HTTP Post Request");
			HttpResponse response = httpclient.execute(httppost);

			String str = convertInputStreamToString(
					response.getEntity().getContent()).toString();
			Log.w("SENCIDE", str);

			
			tx.setText(str.toString());
			

		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	private static String convertInputStreamToString(InputStream inputStream)
			throws IOException {
		BufferedReader bufferedReader = new BufferedReader(
				new InputStreamReader(inputStream));
		String line = "";
		String result = "";
		while ((line = bufferedReader.readLine()) != null)
			result += line;

		inputStream.close();
		return result;

	}
}
y este el logcat con el error

Código:
08-04 16:39:27.730: D/memalloc(15364): /dev/pmem: Mapped buffer base:0x51727000 size:2580480 offset:1966080 fd:46
08-04 16:39:28.400: D/memalloc(15364): /dev/pmem: Mapped buffer base:0x51b4d000 size:3194880 offset:2580480 fd:49
08-04 16:39:28.520: D/memalloc(15364): /dev/pmem: Mapped buffer base:0x51fd9000 size:1474560 offset:860160 fd:52
08-04 16:39:30.120: W/SENCIDE(15364): Execute HTTP Post Request
08-04 16:39:30.180: W/dalvikvm(15364): threadid=1: thread exiting with uncaught exception (group=0x40da51f8)
08-04 16:39:30.200: E/AndroidRuntime(15364): FATAL EXCEPTION: main
08-04 16:39:30.200: E/AndroidRuntime(15364): android.os.NetworkOnMainThreadException
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at java.net.InetAddress.lookupHostByName(InetAddress.java:426)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at java.net.InetAddress.getAllByNameImpl(InetAddress.java:277)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at java.net.InetAddress.getAllByName(InetAddress.java:251)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at com.example.login_prueva.MainActivity.postLoginData(MainActivity.java:94)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at com.example.login_prueva.MainActivity.connect(MainActivity.java:64)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at com.example.login_prueva.MainActivity$1.onClick(MainActivity.java:47)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at android.view.View.performClick(View.java:3524)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at android.view.View$PerformClick.run(View.java:14194)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at android.os.Handler.handleCallback(Handler.java:605)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at android.os.Handler.dispatchMessage(Handler.java:92)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at android.os.Looper.loop(Looper.java:137)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at android.app.ActivityThread.main(ActivityThread.java:4476)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at java.lang.reflect.Method.invokeNative(Native Method)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at java.lang.reflect.Method.invoke(Method.java:511)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:816)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:583)
08-04 16:39:30.200: E/AndroidRuntime(15364): 	at dalvik.system.NativeStart.main(Native Method)
no se que estoy haciendo mal , los permisos de internet en el manifest ya estan.
Responder Con Cita


  #2  
Viejo 04/08/14, 17:03:32
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

Solo con poner el nombre de la excepción en google (android.os.NetworkOnMainThreadException) te sale la respuesta.

También se ha comentado por aquí alguna vez, el acceso a la red tiene que hacerse desde otro hilo (una AsyncTask por ejemplo) para no bloquear el hilo principal de ejecución de Android y de la app.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #3  
Viejo 04/08/14, 18:56:19
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
ok, gracias solucionado
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 16:55:03 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /