Mercurial Hosting > luan
diff src/luan/webserver/Response.java @ 1137:c123ee15f99b
add webserver
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 29 Jan 2018 18:49:59 -0700 |
parents | |
children | 2dda3c92a473 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/luan/webserver/Response.java Mon Jan 29 18:49:59 2018 -0700 @@ -0,0 +1,44 @@ +package luan.webserver; + +import java.io.InputStream; +import java.util.Map; +import java.util.LinkedHashMap; +import java.util.Collections; + + +public class Response { + public final String protocol = "HTTP/1.1"; + public volatile Status status = Status.OK; + public final Map<String,String> headers = Collections.synchronizedMap(new LinkedHashMap<String,String>()); + { + headers.put("Server","ThreeBody"); + } + public volatile Body body; + + public static class Body { + public final long length; + public final InputStream content; + + public Body(long length,InputStream content) { + this.length = length; + this.content = content; + } + } + + + public String toHeaderString() { + StringBuilder sb = new StringBuilder(); + sb.append( protocol ) + .append( ' ' ).append( status.code ) + .append( ' ' ).append( status.reason ) + .append( "\r\n" ) + ; + for( Map.Entry<String,String> entry : headers.entrySet() ) { + String name = entry.getKey(); + String value = entry.getValue(); + sb.append( name ).append( ": " ).append( value ).append( "\r\n" ); + } + sb.append( "\r\n" ); + return sb.toString(); + } +}