-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathHTTPClient.java
More file actions
64 lines (54 loc) · 2.35 KB
/
HTTPClient.java
File metadata and controls
64 lines (54 loc) · 2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import java.net.* ;
import java.io.* ;
import java.util.* ;
public class HTTPClient {
public static void main(String args[]) {
String hostName=args[0];
String portName=args[1];
String uriName=args[2];
doGet(hostName, portName, uriName);
}
public static void doGet(String host, int port, String uri) {
Socket socket = null;
try {
socket = new Socket(host, port);
} catch(Exception e) {
e.printStackTrace();
}
try {
StringBuffer sb = new StringBuffer("GET " + uri + " HTTP/1.1\r\n");
sb.append("Host: " + host + ":" + port + "\r\n");
sb.append("Accept: */*\r\n");
sb.append("Accept-Language: zh-cn\r\n");
sb.append("Accept-Encoding: gzip, deflate\r\n");
sb.append("User-Agent: HTTPClient\r\n");
sb.append("Connection: close\r\n");
sb.append("\r\n");
OutputStream socketOut = socket.getOutputStream();
socketOut.write(sb.toString().getBytes());
socketOut.flush();
InputStream streamIn = socket.getInputStream();
String content = readAll(streamIn, "utf8");
System.out.println(content);
} catch(Exception e) {
e.printStackTrace();
} finally {
try {
socket.close();
} catch(Exception e) {
e.printStackTrace();
}
}
} //#doGet()
public static String readAll(InputStream src, String encoding) throws IOException {
BufferedReader input = new BufferedReader(new InputStreamReader(src, encoding));
StringBuffer sb = new StringBuffer();
String line;
while ((line = input.readLine()) != null) {
sb.append(line);
sb.append("\r\n");
}
input.close();
return sb.toString();
}
}