java中发送Http请求的方法很多,可以使用开源框架如httpclient,URLConnection的相关函数和Socket api来发送。相对于前两种,直接使用Socket发送http请求可以说是最底层的方式,其他方式或多或少的对该方式进行了封装,如下。
Socket socket = new Socket("localhost", 8080);
OutputStream os = socket.getOutputStream();
StringBuffer sb = new StringBuffer();
sb.append("GET /DataShow/servlet/LoginServlet?name=zhangsan9 HTTP/1.1\r\n");// 注意\r\n为回车换行
// sb.append("Accept-Language: zh-cn\r\n");
// sb.append("Connection: Keep-Alive\r\n");
sb.append("Host:localhost\r\n");
sb.append("\r\n");
os.write(sb.toString().getBytes());
os.flush();
以上的服务器是本人在tomcat中的一个web项目
以上的换行符是必须的,另外还有一些设置参数也是必须的。
相对来说使用socket直接发送http请求较为繁琐,需要了解http协议才能很好的掌握