Avatar billede bris Nybegynder
02. september 2004 - 15:05 Der er 4 kommentarer og
1 løsning

Http authorization

I det nedenstående er der beskrevet hvad jeg gør for at tilgå en webserver, som har basic authorization integreret. Dvs, at jeg skal specificere brugernavn og password i en header.

Ligemeget hvad jeg gør, så får jeg responsekode 401 = UnAuthorized. Ufattelig taknemmlig, hvis i kan løse den her!


public byte[] recieveFile(String fileName, String filePath) throws Exception {
  try {
    if((!fileName.equalsIgnoreCase(".")) && (!fileName.equalsIgnoreCase(".."))) {
      URL url = new URL("http://pc187/");
     
      HttpURLConnection con = (HttpURLConnection)url.openConnection();
        con.connect();

        String name = con.getHeaderField("WWW-Authenticate");

        //If we get response for Authenticate, then the webserver is protected by username and passwword.
        if(name != null) {
          System.out.println(name);
          String temp = new String(USERNAME+":"+PASSWORD);

          BASE64Encoder encoder = new BASE64Encoder();
          temp = encoder.encode(temp.getBytes());
          System.out.println("after encode: "+temp);

          con.disconnect();
          con.setRequestProperty("Authorization","Basic "+temp);

          con.connect();

        }

        //We are now connected to the webserver, and ready for download.
        if(con.getResponseCode() == HttpURLConnection.HTTP_OK) {
          System.out.println("ok");


          /*
                if(socket.isBound()){
                  InputStream is = socket.getInputStream();
                  ByteArrayOutputStream os = new ByteArrayOutputStream();
                  byte[] bytes = new byte[BYTES_TO_READ];
                  int i = is.read(bytes);
                  while(i >= 0) {
                    os.write(bytes, 0, i);
                    i = is.read(bytes);
                  }
                  os.close();
                  is.close();
                  socket.close();
          */
          con.disconnect();
          return new byte[0];
        }
      else{
        System.out.println("FEJL: code: "+con.getResponseCode());
        con.disconnect();
        return new byte[0];
Avatar billede arne_v Ekspert
02. september 2004 - 15:25 #1
Avatar billede bris Nybegynder
03. september 2004 - 08:33 #2
Jeg havde læst dem. Der var vist et par stykker mere. Jeg tror løsningen var, at jeg ikke begyndte at læse data fra forbindelsen bagefter.. Så lykkedes det.. Jeg er faktisk ikke sikker..
Anyway.. Du får bare pointene.. Bare giv mig et svar!
Avatar billede arne_v Ekspert
03. september 2004 - 09:20 #3
ok
Avatar billede arne_v Ekspert
11. september 2004 - 21:02 #4
Så mangler du bare at acceptere mit svar (du skal markere mit navn så det
blivet blåt inden du klikker accepter)
Avatar billede bris Nybegynder
12. september 2004 - 21:41 #5
Hehe.. Ja ja.. ;) Tak for hjælpen!
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