简单的http服务器java
来源:互联网 发布:高洛峰php在线视频教程 编辑:程序博客网 时间:2024/06/06 04:12
package jiankongLinux;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class server2 { public static void main(String[] args) { try { ServerSocket ss=new ServerSocket(8888); while(true){ Socket socket=ss.accept(); BufferedReader bd=new BufferedReader(new InputStreamReader(socket.getInputStream())); /** * 接受HTTP请求 */ String requestHeader; int contentLength=0; while((requestHeader=bd.readLine())!=null&&!requestHeader.isEmpty()){ System.out.println(requestHeader); /** * 获得GET参数 */ if(requestHeader.startsWith("GET")){ int begin = requestHeader.indexOf("/?")+3; int end = requestHeader.indexOf("HTTP/"); String condition=requestHeader.substring(begin, end); System.out.println("GET参数是:"+condition); } /** * 获得POST参数 * 1.获取请求内容长度 */ if(requestHeader.startsWith("Content-Length")){ int begin=requestHeader.indexOf("Content-Lengh:")+"Content-Length:".length(); String postParamterLength=requestHeader.substring(begin+1).trim(); contentLength=Integer.parseInt(postParamterLength); System.out.println("POST参数长度是:"+Integer.parseInt(postParamterLength)); } } StringBuffer sb=new StringBuffer(); if(contentLength>0){ for (int i = 0; i < contentLength; i++) { sb.append((char)bd.read()); } System.out.println("POST参数是:"+sb.toString()); } //发送回执 PrintWriter pw=new PrintWriter(socket.getOutputStream()); pw.println("HTTP/1.1 200 OK"); pw.println("Content-type:text/html"); pw.println(); pw.println("<h1>访问成功!</h1>"); pw.flush(); socket.close(); } } catch (IOException e) { e.printStackTrace(); } }}
其中将String condition=requestHeader.substring(begin, end);中的condition截取出来,可以实现不同uri访问功能;
例如
uri=condition;if(uri.trim().equals("/config")){ PrintWriter pw=new PrintWriter(socket.getOutputStream()); pw.println("HTTP/1.1 200 OK"); pw.println("Content-type:text/plain"); pw.println(); pw.println(“config”); pw.flush(); }if(uri.trim().equals("/vlan")){ PrintWriter pw=new PrintWriter(socket.getOutputStream()); pw.println("HTTP/1.1 200 OK"); pw.println("Content-type:text/plain"); pw.println(); pw.println(“vlan”); pw.flush(); }
此时可以实现输入localhost:8888/vlan时返回vlan这个字符串,输入localhost:8888/config时会返回config这个字符串
0 0
- 简单的http服务器java
- 简单HTTP服务器的Java实现
- JAVA 实现 简单的 HTTP服务器
- 简单的http服务器
- Java写简单HTTP服务器
- 最简单的Http服务器之java版
- 用Java编写你自己的简单HTTP服务器
- 用Java编写你自己的简单HTTP服务器
- 用Java编写你自己的简单HTTP服务器
- 用Java编写你自己的简单HTTP服务器
- 用Java编写你自己的简单HTTP服务器
- 用Java编写你自己的简单HTTP服务器
- 用java socket实现了一个简单的http服务器
- java nio http服务器(3)简单的Servlet容器
- 用Java编写你自己的简单HTTP服务器
- java造轮子之自己写简单的HTTP服务器
- java简单实现Http服务器,及遇到的问题
- 用Java编写你自己的简单HTTP服务器
- React Native配置运行官方Example Demo 等等
- 通过ActivityManager 管理activity
- java HashMap 实现原理
- iOS--线程间通讯NSThread--04
- 怎么将一个十六进制数转变成十进制数
- 简单的http服务器java
- Angular 几篇关于指令的好文章收录(一)
- Matlab中低级文件I/O操作函数
- RxJava2 浅析
- crul 的使用
- java——final关键字
- Linux常用命令大全
- WebView/JS/Java调用
- 根视图条转