package URLConnectionTest; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Map; import java.util.Scanner; public class URLTConnectionTest { public static void main(String[] args) { Scanner in = new Scanner(System.in); try { String urlName; urlName = in.nextLine(); URL url = new URL(urlName); URLConnection connection = url.openConnection(); //Setarea username si parola daca sunt indicate in cimp if(urlName.length() > 2) { String username = in.nextLine(); String password = in.nextLine(); String input = username + ":" + password; String encoding = base64Encode(input); connection.setRequestProperty("Authorization", "Basic "+ encoding); } connection.connect(); //Afisarea cimpurilor din header Map<String, List<String>> headers = connection.getHeaderFields(); for(Map.Entry<String, List<String>> entry: headers.entrySet()) { String key = entry.getKey(); for(String value : entry.getValue()) { System.out.println(key + ": " + value); } } //Afisarea valorilor de cimpuri, primite cu ajutorul metodelor speciale System.out.println("--------"); System.out.println("getContentType: " + connection.getContentType()); System.out.println("getContentLenght: " + connection.getContentLength()); System.out.println("getContentEncoding: " + connection.getContentEncoding()); System.out.println("getDate: " + connection.getDate()); System.out.println("getExpiration: " + connection.getExpiration()); System.out.println("getLastModifed: " + connection.getLastModified()); System.out.println("---------"); Scanner inConnectionScanner = new Scanner(connection.getInputStream()); //Afisarea primelor 10 rinduri de continut for(int n = 1; inConnectionScanner.hasNextLine() && n <=10; n++) { System.out.println(inConnectionScanner.nextLine()); } if(inConnectionScanner.hasNextLine()) { System.out.println("..."); } } catch(IOException e) { e.printStackTrace(); } } /** * Codificarea base64 Cimp * @param s String * @return String,codat */ public static String base64Encode(String s) { ByteArrayOutputStream bOut =new ByteArrayOutputStream(); Base64OutputStream out = new Base64OutputStream(bOut); try { out.write(s.getBytes()); out.flush(); } catch(IOException e) { } return bOut.toString(); } }