Skip to content

Commit cc8ec12

Browse files
committed
statusCode paramaterized.
1 parent c01e720 commit cc8ec12

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

src/main/java/org/wiztools/anyurlhttpserver/AnyUrlHttpServerMain.java

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@ public class AnyUrlHttpServerMain {
1818

1919
private static void printHelp(PrintStream out) {
2020
out.println("Parameters: ");
21-
out.println("\t-p [Mandatory] port number.");
22-
out.println("\t-f File to serve. When not given, prints <p>Hello World!</p>");
23-
out.println("\t-c Response Content-Type. Default is text/html.");
24-
out.println("\t-r Response character encoding. Default is utf-8.");
25-
out.println("\t-H * Response header in the format: `header:value'.");
26-
out.println("\t-h Print this help.");
21+
out.println(" -p [Mandatory] port number.");
22+
out.println(" -f File to serve. When not given, prints <p>Hello World!</p>");
23+
out.println(" -c Response Content-Type. Default is text/html.");
24+
out.println(" -r Response character encoding. Default is utf-8.");
25+
out.println(" -H * Response header in the format: `header:value'.");
26+
out.println(" -s Response status code.");
27+
out.println(" -h Print this help.");
2728
out.println("Parameters with * can be used more than once.");
2829
}
2930

@@ -82,6 +83,16 @@ public static void main(String[] args) throws Exception {
8283
servlet.setHeaders(headers);
8384
}
8485

86+
if(options.has("s")) {
87+
try {
88+
int statusCode = Integer.parseInt(options.valueOf("s").toString());
89+
servlet.setStatusCode(statusCode);
90+
}
91+
catch(NumberFormatException ex) {
92+
throw new IllegalArgumentException("Param -s must be a valid status code.");
93+
}
94+
}
95+
8596
Server server = new Server(port);
8697
server.setStopAtShutdown(true);
8798

src/main/java/org/wiztools/anyurlhttpserver/AnyUrlServlet.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public class AnyUrlServlet extends HttpServlet {
2222
private String charset = "utf-8";
2323
private File file;
2424
private MultiValueMap<String, String> headers;
25+
private int statusCode = HttpServletResponse.SC_OK;
2526

2627
public void setContentType(String contentType) {
2728
this.contentType = contentType;
@@ -39,6 +40,10 @@ public void setHeaders(MultiValueMap headers) {
3940
this.headers = headers;
4041
}
4142

43+
public void setStatusCode(int statusCode) {
44+
this.statusCode = statusCode;
45+
}
46+
4247
@Override
4348
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
4449
process(req, resp);
@@ -72,6 +77,8 @@ private void process(HttpServletRequest req, HttpServletResponse resp) throws Se
7277
}
7378
}
7479

80+
resp.setStatus(statusCode);
81+
7582
try(OutputStream os = resp.getOutputStream();) {
7683
if(file != null && file.exists() && file.canRead()) {
7784
try(InputStream is = new FileInputStream(file)) {

0 commit comments

Comments
 (0)