mirror of
https://github.com/Estom/notes.git
synced 2026-02-04 19:13:24 +08:00
Java内容重新整理删除过期的东西
This commit is contained in:
90
Java/JavaDemo/codedemo/jetty/HttpServerMock.java
Normal file
90
Java/JavaDemo/codedemo/jetty/HttpServerMock.java
Normal file
@@ -0,0 +1,90 @@
|
||||
package cn.aofeng.demo.jetty;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.eclipse.jetty.server.Handler;
|
||||
import org.eclipse.jetty.server.Request;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.server.handler.AbstractHandler;
|
||||
|
||||
/**
|
||||
* HTTP服务器MOCK,可用于单元测试时模拟HTTP服务器的响应。
|
||||
*
|
||||
* @author <a href="mailto:aofengblog@163.com">聂勇</a>
|
||||
*/
|
||||
public class HttpServerMock {
|
||||
|
||||
public final static int DEFAULT_PORT = 9191;
|
||||
public final static String DEFAULT_CONTENT_TYPE = "application/json";
|
||||
public final static int DEFAULT_STATUS_CODE=HttpServletResponse.SC_OK;
|
||||
|
||||
private Server _httpServer;
|
||||
private int _port;
|
||||
|
||||
public HttpServerMock() {
|
||||
_port = DEFAULT_PORT;
|
||||
}
|
||||
|
||||
public HttpServerMock(int port) {
|
||||
_port = port;
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动Jetty服务器。默认的响应status code为"200",content type为"application/json"。
|
||||
* @param content 响应内容
|
||||
*/
|
||||
public void start(String content) throws Exception {
|
||||
start(content, DEFAULT_CONTENT_TYPE, DEFAULT_STATUS_CODE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动Jetty服务器。默认的响应status code为"200"。
|
||||
* @param content 响应内容
|
||||
* @param contentType 响应内容的MIME类型
|
||||
*/
|
||||
public void start(String content, String contentType) throws Exception {
|
||||
start(content, contentType, DEFAULT_STATUS_CODE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动Jetty服务器。
|
||||
* @param content 响应内容
|
||||
* @param contentType 响应内容的MIME类型
|
||||
* @param statuCode 响应状态码
|
||||
*/
|
||||
public void start(String content, String contentType,
|
||||
int statuCode) throws Exception {
|
||||
_httpServer = new Server(_port);
|
||||
_httpServer.setHandler(createHandler(content, contentType, statuCode));
|
||||
_httpServer.start();
|
||||
}
|
||||
|
||||
/**
|
||||
* 停止Jetty服务器。
|
||||
*/
|
||||
public void stop() throws Exception {
|
||||
if (null != _httpServer) {
|
||||
_httpServer.stop();
|
||||
_httpServer = null;
|
||||
}
|
||||
}
|
||||
|
||||
private Handler createHandler(final String content, final String contentType,
|
||||
final int statusCode) {
|
||||
return new AbstractHandler() {
|
||||
@Override
|
||||
public void handle(String target, Request baseRequest, HttpServletRequest request,
|
||||
HttpServletResponse response) throws IOException, ServletException {
|
||||
response.setContentType(contentType);
|
||||
response.setStatus(statusCode);
|
||||
baseRequest.setHandled(true);
|
||||
response.getWriter().print(content);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user