Have a simple HTTP server
2013-11-06 18:43
791 查看
http://www.rgagnon.com/javadetails/java-have-a-simple-http-server.html
/article/2585691.html
Since Java 1.6, there's a built-in HTTP server
included
with the JDK.
The HttpServer provides
a simple high-level Http server
API,
which can be used to build embedded HTTP servers.
Compile and execute. To access the local server
,
open a browser at http://localhost:8000/test. The next HttpServer provides 2 contexts : http://localhost:8000/info to display an informative message. http://localhost:8000/get to download a specific PDF to the browser.
导入com.sun.net.httpserver可能会报错,用如下方法解决。
Eclipse 编译错误 Access restriction:The type *** is not accessible due to restriction on... 解决方案
Eclipse 编译时报错:
Access restriction:The type JPEGCodec is not accessible due to restriction on required library C:/Program Files/Java/jre6/lib/rt.jar
解决方法:
Project -> Properties -> libraries,
先 remove 掉 JRE System Library,然后再 Add Library 重新加入。
/article/2585691.html
Since Java 1.6, there's a built-in HTTP server
included
with the JDK.
The HttpServer provides
a simple high-level Http server
API,
which can be used to build embedded HTTP servers.
import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; /* * a simple static http server */ public class SimpleHttpServer { public static void main(String[] args) throws Exception { HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0); server.createContext("/test", new MyHandler()); server.setExecutor(null); // creates a default executor server.start(); } static class MyHandler implements HttpHandler { public void handle(HttpExchange t) throws IOException { String response = "Welcome Real's HowTo test page"; t.sendResponseHeaders(200, response.length()); OutputStream os = t.getResponseBody(); os.write(response.getBytes()); os.close(); } } }
Compile and execute. To access the local server
,
open a browser at http://localhost:8000/test. The next HttpServer provides 2 contexts : http://localhost:8000/info to display an informative message. http://localhost:8000/get to download a specific PDF to the browser.
import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; import com.sun.net.httpserver.Headers; public class SimpleHttpServer { public static void main(String[] args) throws Exception { HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0); server.createContext("/info", new InfoHandler()); server.createContext("/get", new GetHandler()); server.setExecutor(null); // creates a default executor server.start(); } static class InfoHandler implements HttpHandler { public void handle(HttpExchange t) throws IOException { String response = "Use /get to download a PDF"; t.sendResponseHeaders(200, response.length()); OutputStream os = t.getResponseBody(); os.write(response.getBytes()); os.close(); } } static class GetHandler implements HttpHandler { public void handle(HttpExchange t) throws IOException { // add the required response header for a PDF file Headers h = t.getResponseHeaders(); h.add("Content-Type", "application/pdf"); // a PDF (you provide your own!) File file = new File ("c:/temp/doc.pdf"); byte [] bytearray = new byte [(int)file.length()]; FileInputStream fis = new FileInputStream(file); BufferedInputStream bis = new BufferedInputStream(fis); bis.read(bytearray, 0, bytearray.length); // ok, we are ready to send the response. t.sendResponseHeaders(200, file.length()); OutputStream os = t.getResponseBody(); os.write(bytearray,0,bytearray.length); os.close(); } } }
导入com.sun.net.httpserver可能会报错,用如下方法解决。
Eclipse 编译错误 Access restriction:The type *** is not accessible due to restriction on... 解决方案
Eclipse 编译时报错:
Access restriction:The type JPEGCodec is not accessible due to restriction on required library C:/Program Files/Java/jre6/lib/rt.jar
解决方法:
Project -> Properties -> libraries,
先 remove 掉 JRE System Library,然后再 Add Library 重新加入。
相关文章推荐
- SimpleHttpServer的学习之总体架构
- SimpleHTTPServer in Python
- HTTP 错误 500.21 - Internal Server Error 处理程序“SimpleHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPi
- python SimpleHTTPServer
- python的SimpleHTTPServer
- SimpleHTTPServer: 使用静态文件来回应请求
- Golang SimpleHTTPServer
- Tech Tip: Really Simple HTTP Server with Python
- A Linux-Junky Blog: A Very Simple HTTP Server writen in C
- 【转】python -m SimpleHTTPServer简单服务器命令
- python -m SimpleHTTPServer 80801
- Really Simple HTTP Server with Python
- 使用 python -m SimpleHTTPServer 快速搭建http服务
- Tech Tip: Really Simple HTTP Server with Python
- Simple HTTP Proxy Server Implementation, based on wcol - Projects - Michael Vorburger's Private Homepage
- python simple http server
- SimpleHTTPServer模块分析
- Build A Simple Socket Server - Can Be Used To Check The HTTP Protocol
- Simple HTTP Server and Client in Python
- python -m SimpleHTTPServer 3000