Avatar billede komp Nybegynder
07. august 2002 - 10:15 Der er 11 kommentarer og
1 løsning

Hente side efter login?

Hey

Jeg skal hente en fil fra en server, men problemet er at jeg først kan få adgang til den fil efter jeg er blevet logget ind. Hvordan gør man det? Jeg regner med at når man logger ind ved hjælp af browseren er det en postkommando.
Avatar billede carstenknudsen Nybegynder
07. august 2002 - 10:41 #1
Hvis der tale om at du får adgang til din server med
en url kan nedenstående kode hjælpe.
Hvis en side er password protected kaldes metoden
getPasswordAuthentication i default authenticatoren,
herunder sættes den til en brugerdefineret fil som
du kan ændres, så den f.eks. får login navn og
password via en gui. Eksemplet er fra
Java almanac.

  Authenticator.setDefault(new MyAuthenticator());
   
    // Access the page
    try {
        // Create a URL for the desired page
        URL url = new URL("http://hostname:80/index.html");
   
        // Read all the text returned by the server
        BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
        String str;
        while ((str = in.readLine()) != null) {
            // str is one line of text; readLine() strips the newline character(s)
        }
        in.close();
    } catch (MalformedURLException e) {
    } catch (IOException e) {
    }
   
    public class MyAuthenticator extends Authenticator {
        // This method is called when a password-protected URL is accessed
        protected PasswordAuthentication getPasswordAuthentication() {
            // Get information about the request
            String promptString = getRequestingPrompt();
            String hostname = getRequestingHost();
            InetAddress ipaddr = getRequestingSite();
            int port = getRequestingPort();
   
            // Get the username from the user...
            String username = "myusername";
   
            // Get the password from the user...
            String password = "mypassword";
   
            // Return the information
            return new PasswordAuthentication(username, password.toCharArray());
        }
    }
Avatar billede komp Nybegynder
07. august 2002 - 11:11 #2
Jeg forstår dig ikke helt:

Authenticator.setDefault(new MyAuthenticator()); - skal den kaldes først?
Avatar billede komp Nybegynder
07. august 2002 - 11:15 #3
Jeg ved ikke om det kan hjælpe jer, men det drejer sig om en asp-side, hvor password og brugernavn bliver submittet ved hjælp af en form!
Avatar billede carstenknudsen Nybegynder
07. august 2002 - 11:15 #4
Ja, det skal den. Du kan iøvrigt godt lave MyAuthenticator
privat og statisk hvis du vil gemme den lidt væk.
Avatar billede carstenknudsen Nybegynder
07. august 2002 - 11:18 #5
Du skal vel læse filen gennem Java ikke?
Avatar billede komp Nybegynder
07. august 2002 - 11:23 #6
jeg har prøvet at lave den, men jeg får en exception da jeg sidder på arbejde med en satans proxy-server. prøver at lave videre i aften.
Avatar billede komp Nybegynder
07. august 2002 - 14:30 #7
når jeg prøver at køre den, så får jeg en timeout fra serveren, så det kunne godt se ud som om det ikke virker!
Avatar billede carstenknudsen Nybegynder
07. august 2002 - 19:48 #8
Kan du tilføje en udskrift for at
se om den kontakter authenticatoren.
Avatar billede komp Nybegynder
07. august 2002 - 23:02 #9
ja, det har jeg prøvet og det gør den ikke!!!
Avatar billede carstenknudsen Nybegynder
08. august 2002 - 15:22 #10
Den var værre. Hvis du har ret i
at det en postkommando som du
skal bruge for at logge ind på
serveren, kan du prøve at sende
login og password på følgende måde
(hvor det måske ikke hedder "login" og "password"):
String login = ...;
String password = ...;
String cmd = URLEncoder.encode("login","UTF-8")
+"="+
URLEncoder.encode(login,"UTF-8")+
"&"+
URLEncoder.encode("password","UTF-8")+
"="
+URLEncoder.encode(password,"UTF-8");
Strengen cmd skal så sendes til serveren
med noget som:
URL = new URL("http://server.dk?"+cmd);
men det sidste må du ikke hænge mig op på.
Avatar billede komp Nybegynder
09. august 2002 - 16:58 #11
Det virker heller ikke. En post kommando sender også en blok af data og den sendes ikke sammen med urlen.
Avatar billede komp Nybegynder
18. august 2002 - 15:55 #12
lukker....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester