namespace edu.neu.ccs.demeterf.http{ using edu.neu.ccs.demeterf.http.server; using edu.neu.ccs.demeterf.http.classes; using edu.neu.ccs.demeterf.lib; using System; /** Test Server response class */ [Server] public class Test{ [Port] readonly int PORT = 9000; [Path("/html")] public HTTPResp htmlResp(HTTPReq req) { return HTTPResp.htmlResponse("\n"+ "Sample Page\n"+ "HELLO There"); } [Path("/text")] public HTTPResp textResp(HTTPReq req) { return HTTPResp.textResponse("Plain Text Response"); } [Path("/urlargs")] public HTTPResp urlResp(HTTPReq req) { return mapToHTML(req.urlArgs()); } [Path("/headers")] public HTTPResp headerResp(HTTPReq req) { return mapToHTML(req.getHeaders()); } [Path()] // DEFAULT public HTTPResp defaultResp(HTTPReq req){ return HTTPResp.error("ERROR: Unknown Request"); } class Folder : List>.Fold{ public override String fold(Entry e, String r){ return ""+e.GetKey()+" : "+e.GetVal()+"
"+r; } } HTTPResp mapToHTML(Map m){ return HTTPResp.htmlResponse(""+ m.toList().fold(new Folder(),"")); } static void p(String s){ Console.WriteLine(s); } public static void Main(String[] args) { p("Starting Server\n"); Factory.setVerbose(true); ServerThread server = Factory.create(new Test()); p("Hit enter to shutdown"); Console.ReadLine(); server.shutdown(); } } }