锁定老帖子
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协议才能很好的掌握
Java Socket发送与接收HTTP消息简单实现