Naposledy aktivní 1722542665

Revize 1e2722a1e23d30951f6abd0982fe61595fcd6755

WebClient.java Raw
1package rocks.zipcode;
2
3import java.io.IOException;
4import java.io.InputStream;
5import java.net.URL;
6import java.net.URLConnection;
7import java.util.Scanner;
8
9public class WebClient {
10 public static void main(String[] args) throws IOException {
11 String url = "http://localhost:8000";
12 if (args.length == 0) {
13 Scanner scanner = new Scanner(System.in);
14 System.out.print("Enter a URL: ");
15 url = scanner.nextLine();
16 } else {
17 url = args[0];
18 }
19 try {
20 URLConnection connection = new URL(url).openConnection();
21 InputStream response = connection.getInputStream();
22 Scanner scanner = new Scanner(response);
23 String responseBody = scanner.useDelimiter("\\A").next();
24 System.out.println(responseBody);
25 } catch (IOException e) {
26 System.out.println("Error fetching URL: " + e.getMessage());
27 }
28 }
29}
ZipWebServer.java Raw
1package rocks.zipcode;
2
3import java.io.IOException;
4import java.io.OutputStream;
5import java.net.InetSocketAddress;
6
7import com.sun.net.httpserver.HttpExchange;
8import com.sun.net.httpserver.HttpHandler;
9import com.sun.net.httpserver.HttpServer;
10
11public class ZipWebServer {
12 static final int port = 8000;
13
14 public static void main(String[] args) throws Exception {
15 HttpServer server = HttpServer.create(new InetSocketAddress(ZipWebServer.port), 0);
16 server.createContext("/", new RootHandler());
17 server.createContext("/test", new TestHandler());
18 server.createContext("/foo", new FooHandler());
19 server.createContext("/bar", new BarHandler());
20 // server.setExecutor(null); // creates a default executor
21 // server.setExecutor(java.util.concurrent.Executors.newCachedThreadPool());
22 server.setExecutor(java.util.concurrent.Executors.newFixedThreadPool(5));
23 server.start();
24 }
25
26 static class RootHandler implements HttpHandler {
27 @Override
28 public void handle(HttpExchange t) throws IOException {
29 if (t.getRequestMethod().equals("GET") ) {
30 String response = "Zip Code Rocks!";
31 t.sendResponseHeaders(200, response.length());
32 OutputStream os = t.getResponseBody();
33 os.write(response.getBytes());
34 os.close();
35 } else {
36 String response = "No GET!";
37 t.sendResponseHeaders(404, response.length());
38 OutputStream os = t.getResponseBody();
39 os.write(response.getBytes());
40 os.close();
41 }
42 }
43 }
44 static class TestHandler implements HttpHandler {
45 @Override
46 public void handle(HttpExchange t) throws IOException {
47 String response = "Testing! Testing! Zip Code Rocks!";
48 t.sendResponseHeaders(200, response.length());
49 OutputStream os = t.getResponseBody();
50 os.write(response.getBytes());
51 os.close();
52 }
53 }
54 static class FooHandler implements HttpHandler {
55 @Override
56 public void handle(HttpExchange t) throws IOException {
57 String response = "<HTML><BODY><h1>HTML</h1><p>This is a proper paragraph of text.</p></BODY></HTML>";
58 t.sendResponseHeaders(200, response.length());
59 OutputStream os = t.getResponseBody();
60 os.write(response.getBytes());
61 os.close();
62 }
63 }
64
65 static class BarHandler implements HttpHandler {
66 @Override
67 public void handle(HttpExchange t) throws IOException {
68 String response = MakeBody();
69 t.sendResponseHeaders(200, response.length());
70 OutputStream os = t.getResponseBody();
71 os.write(response.getBytes());
72 os.close();
73 }
74 }
75
76 static String MakeBody() {
77 StringBuilder sb = new StringBuilder();
78 String css = "body { font-family: Arial, sans-serif; line-height: 1.6; color: #222; " +
79 "max-width: 40rem; padding: 2rem; margin: auto; background: #fafafa; }" +
80 "a { color: #2ECC40; } h1, h2, strong { color: #111; }";
81
82 sb.append("<HTML>");
83 sb.append("<style>");
84 sb.append(css);
85 sb.append("</style>");
86 sb.append("<BODY><h1>Level One Header</h1>");
87 sb.append("<p>");
88 for(int i = 0; i<10; i++) {
89 sb.append("This is a proper paragraph of text. ");
90 }
91 sb.append("</p>");
92 sb.append("<h2>Header Level 2</h2>");
93 sb.append("<p><em>");
94 for(int i = 0; i<2; i++) {
95 sb.append("How often have I said to you that when you have eliminated the impossible, whatever remains, however improbable, must be the truth? We know that he did not come through the door, the window, or the chimney. We also know that he could not have been concealed in the room, as there is no concealment possible. When, then, did he come?. <br/> ");
96 }
97 sb.append("</em></p>");
98
99 // do a bunch SQL queries here
100 // sb.append("<p>SELECT * FROM users WHERE username = 'admin';</p>");
101
102 sb.append("<h3>Header Level 3</h3>");
103 spackage rocks.zipcode;
104
105import java.io.IOException;
106import java.io.InputStream;
107import java.net.URL;
108import java.net.URLConnection;
109import java.util.Scanner;
110
111public class WebClient {
112 public static void main(String[] args) throws IOException {
113 String url = "http://localhost:8000";
114 if (args.length == 0) {
115 Scanner scanner = new Scanner(System.in);
116 System.out.print("Enter a URL: ");
117 url = scanner.nextLine();
118 } else {
119 url = args[0];
120 }
121 try {
122 URLConnection connection = new URL(url).openConnection();
123 InputStream response = connection.getInputStream();
124 Scanner scanner = new Scanner(response);
125 String responseBody = scanner.useDelimiter("\\A").next();
126 System.out.println(responseBody);
127 } catch (IOException e) {
128 System.out.println("Error fetching URL: " + e.getMessage());
129 }
130 }
131}b.append("<p>");
132 for(int i = 0; i<5; i++) {
133 sb.append("Experience is the teacher of all things.\n");
134 }
135 sb.append("</p>");
136
137 sb.append("</BODY></HTML>");
138
139 return sb.toString();
140 }
141
142}
143