socket-client-http-get
程序员文章站
2022-04-24 19:58:22
...
目标:通过socket 模拟HTTP协议连接 tomcat,做一次GET请求
HTTP 协议的格式:
request: GET /index.jsp?username=xinchun.wang&password=123456 HTTP/1.1 Host:192.168.237.230 Connection: close response: HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Set-Cookie: JSESSIONID=2D3FE2C8EA372E3ACC69C48E12348B44; Path=/ Content-Type: text/html;charset=ISO-8859-1 Content-Length: 288 Date: Tue, 25 Apr 2017 03:06:57 GMT Connection: close <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> xinchun.wang 123456 </body> </html>
代码参考:
public class ClientGet { public static void main(String[] args) { sendRequest(8078); } public static void sendRequest(int port) { try { Socket socket = new Socket("192.168.237.230", port); OutputStream out = socket.getOutputStream(); // 由Socket对象得到输入流,并构造相应的BufferedReader对象 BufferedReader in = new BufferedReader(new InputStreamReader(socket .getInputStream())); StringBuilder sb = new StringBuilder(); sb.append("GET /index.jsp?username=xinchun.wang&password=123456 HTTP/1.1\r\n"); sb.append("Host:192.168.237.230\r\n"); sb.append("Connection: close\r\n"); sb.append("\r\n"); out.write(sb.toString().getBytes()); out.flush(); String line = in.readLine(); while(line != null && line.toString() != ""){ System.out.println(line); line = in.readLine(); } out.close(); // 关闭Socket输出流 in.close(); // 关闭Socket输入流 socket.close(); // 关闭Socket } catch (Exception e) { System.out.println("Error. " + e); } } }
上一篇: 今年最值得考虑的各类型智能家居小工具
下一篇: 短信少了吧;没人理了吧