Jump to content
caracol_mix

aceder a um site http

Recommended Posts

caracol_mix

Boas

Pessoal não sei se este e o local correcto para postar esta duvida, desde já as minhas desculpas.

Ora o meu problema e o seguinte criei o seguinte código num projecto java no eclipse e esta a funcionar correctamente, o problema e quando crio um projecto android onde pretendo que o código funcione. Coloco lá o mesmo código não passa a linha "BufferedReader in = new BufferedReader(new InputStreamReader(url1.openStream()));"

O que pretendo exactamente com este programa  é apenas aceder a um link com autenticação e não pretendo receber informação da mesma pagina (servidor).

A baixo fica o código que desenvolvi se alguém poder ajudar agradeço desde já ...  :)

public class Programa extends Activity {

 ImageButton imageButton1;


    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        
        
        imageButton1 = (ImageButton) findViewById(R.id.imageButton1);
        
        
        
        imageButton1.setOnClickListener(new View.OnClickListener() 
        { 
       
        	public void onClick(View v) 
        	{        		
        		Authenticator.setDefault(new MyAuthenticator());
			try {

				URL url1 = new URL("http://192.168.1.10/cgi-bin/zapTo?path=1:0:1:2c8:25:36:fed40000:0:0:0:");
				BufferedReader in = new BufferedReader(new InputStreamReader(url1.openStream()));
				String str;
			} catch (MalformedURLException e) {
			} catch (IOException e) {
			}
        		
        		 
        	}
        });
        
        
        
        
    }
}

class MyAuthenticator extends Authenticator {
        protected PasswordAuthentication getPasswordAuthentication() {
        String promptString = getRequestingPrompt();
        String hostname = getRequestingHost();
        InetAddress ipaddr = getRequestingSite();
        int port = getRequestingPort();

         String username = "user";
         String password = "pass";


        return new PasswordAuthentication(username, password.toCharArray());
    }
}

Share this post


Link to post
Share on other sites
brunoais

Aonde é que estão os imports?

Isto não faz parte de um package?


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
caracol_mix

Aonde é que estão os imports?

Isto não faz parte de um package?

Os imports nao os coloquei aqui mas estão presentes no código até porque este código apesar de não funcionar no android não dá erros.tenho usado a função log.e("x","y"); e o código ao correr para na linha que mencionei a traz .

fica os imports que tenho no codigo:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Authenticator;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.PasswordAuthentication;
import java.net.URL;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;

Share this post


Link to post
Share on other sites
herty

Diz o erro que te dá.

Ja adicionas-te a permissao para abrires um socket no manifest?

Share this post


Link to post
Share on other sites
caracol_mix

Diz o erro que te dá.

Ja adicionas-te a permissao para abrires um socket no manifest?

Não dá erro...quando carrego no botão simplesmente não faz nada...e ao usar a função log.("X","Y"); detectei que o programa n passa da linha BufferedReader in = new BufferedReader(new InputStreamReader(url1.openStream()));

como é isso das sokets no manifest e que simplesmente fiz o programa desconhecendo totalmente essa parte das permiçoes no manifest .... :S

Share this post


Link to post
Share on other sites
brunoais

Se tivesses usado o sistema de exceções como devia de ser usado ele já mostrava os problemas que tem, em vez de os ter e tu ignorares.

Aonde está:

try {
                                       
                                        URL url1 = new URL("http://192.168.1.10/cgi-bin/zapTo?path=1:0:1:2c8:25:36:fed40000:0:0:0:");
                                        BufferedReader in = new BufferedReader(new InputStreamReader(url1.openStream()));
                                        String str;
                                } catch (MalformedURLException e) {
                                } catch (IOException e) {
                                }

substitui por:

try {
                                       
                                        URL url1 = new URL("http://192.168.1.10/cgi-bin/zapTo?path=1:0:1:2c8:25:36:fed40000:0:0:0:");
                                        BufferedReader in = new BufferedReader(new InputStreamReader(url1.openStream()));
                                        String str;
                                } catch (MalformedURLException e) {
				System.out.println("malformed URL");
				e.printStackTrace();
                                } catch (IOException e) {
				System.out.println("IOException");
				e.printStackTrace();
                                }


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
herty

No android so te deixa mexer com algumas funções caso registes no manifest as permissoes que pretendes usar.

No teu caso tens de acrenscentar esta linha:

<uses-permission android:name="android.permission.INTERNET" />

Share this post


Link to post
Share on other sites
caracol_mix

No android so te deixa mexer com algumas funções caso registes no manifest as permissoes que pretendes usar.

No teu caso tens de acrenscentar esta linha:

<uses-permission android:name="android.permission.INTERNET" />

viva

adicionei essa linha ao meu AndroidManifest.xml e continua sem trabalhar o programa não se coloquei a linha no local correcto deixo o ficheiro a baixo.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.ComandoDreambox"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />
        
<uses-permission android:name="android.permission.INTERNET" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".ComandoDreamboxActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.