This is a simplest HTTP server made of libMiMic. It will echo back a request path.
Dependencies: libMiMic mbed-rtos mbed NySDFileSystem
最も簡単なhttpdです。 クライアントから送信されてきたURLをHtmlにして返します。
ModUrlモジュールのサンプルでもあります。
This program is simple httpserver.
This is tutorial for ModUrl module.
main.cpp@12:779246d391c0, 2015-09-15 (annotated)
- Committer:
- nyatla
- Date:
- Tue Sep 15 10:02:32 2015 +0000
- Revision:
- 12:779246d391c0
- Parent:
- 9:a70e98dd2a25
update libMiMic
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nyatla | 0:ec1e45489427 | 1 | #include "mimic.h" |
nyatla | 6:bcf3fe4d0ba1 | 2 | |
nyatla | 7:8d030ae8ddc3 | 3 | LocalFileSystem2 lf("local"); |
nyatla | 9:a70e98dd2a25 | 4 | |
nyatla | 6:bcf3fe4d0ba1 | 5 | /** |
nyatla | 9:a70e98dd2a25 | 6 | * This program is simplest httpd. |
nyatla | 9:a70e98dd2a25 | 7 | * The program echo back yuor request in html. |
nyatla | 6:bcf3fe4d0ba1 | 8 | */ |
nyatla | 7:8d030ae8ddc3 | 9 | class SimpleHttpd:public MiMic::Httpd |
nyatla | 0:ec1e45489427 | 10 | { |
nyatla | 0:ec1e45489427 | 11 | private: |
nyatla | 0:ec1e45489427 | 12 | ModUrl modurl; //basic URL parser |
nyatla | 0:ec1e45489427 | 13 | public: |
nyatla | 9:a70e98dd2a25 | 14 | SimpleHttpd(NetConfig& i_cfg):Httpd(i_cfg.getHttpPort()) |
nyatla | 0:ec1e45489427 | 15 | { |
nyatla | 0:ec1e45489427 | 16 | } |
nyatla | 0:ec1e45489427 | 17 | virtual void onRequest(HttpdConnection& i_connection) |
nyatla | 0:ec1e45489427 | 18 | { |
nyatla | 6:bcf3fe4d0ba1 | 19 | char url[32]; |
nyatla | 0:ec1e45489427 | 20 | int method; |
nyatla | 7:8d030ae8ddc3 | 21 | |
nyatla | 7:8d030ae8ddc3 | 22 | // |
nyatla | 7:8d030ae8ddc3 | 23 | //write Http handler(s) here! |
nyatla | 7:8d030ae8ddc3 | 24 | // |
nyatla | 7:8d030ae8ddc3 | 25 | |
nyatla | 2:28fd59d6be76 | 26 | //call ModUrl module. |
nyatla | 6:bcf3fe4d0ba1 | 27 | if(this->modurl.execute(i_connection,url,32,&method)){ |
nyatla | 6:bcf3fe4d0ba1 | 28 | //send 200 OK and requested URL |
nyatla | 6:bcf3fe4d0ba1 | 29 | i_connection.sendHeader(200,"text/html",NULL); |
nyatla | 6:bcf3fe4d0ba1 | 30 | i_connection.sendBodyF("<html><body>Your Request path is %s.</body></html>",url); |
nyatla | 0:ec1e45489427 | 31 | return; |
nyatla | 0:ec1e45489427 | 32 | } |
nyatla | 7:8d030ae8ddc3 | 33 | |
nyatla | 0:ec1e45489427 | 34 | return; |
nyatla | 0:ec1e45489427 | 35 | } |
nyatla | 0:ec1e45489427 | 36 | }; |
nyatla | 7:8d030ae8ddc3 | 37 | |
nyatla | 7:8d030ae8ddc3 | 38 | NetConfig cfg; //create network configulation |
nyatla | 0:ec1e45489427 | 39 | int main() |
nyatla | 0:ec1e45489427 | 40 | { |
nyatla | 7:8d030ae8ddc3 | 41 | Net net; //create a net instance. |
nyatla | 7:8d030ae8ddc3 | 42 | |
nyatla | 7:8d030ae8ddc3 | 43 | //try to override setting by local file. |
nyatla | 7:8d030ae8ddc3 | 44 | cfg.loadFromFile("/local/mimic.cfg"); |
nyatla | 9:a70e98dd2a25 | 45 | cfg.setSrvUPnP(false);//disable UPnP |
nyatla | 9:a70e98dd2a25 | 46 | cfg.setSrvMdns(false);//disable mDNS |
nyatla | 7:8d030ae8ddc3 | 47 | |
nyatla | 7:8d030ae8ddc3 | 48 | SimpleHttpd httpd(cfg); //create a httpd instance. |
nyatla | 7:8d030ae8ddc3 | 49 | net.start(cfg); |
nyatla | 0:ec1e45489427 | 50 | httpd.loop(); //start httpd loop. |
nyatla | 0:ec1e45489427 | 51 | return 0; |
nyatla | 0:ec1e45489427 | 52 | } |
nyatla | 6:bcf3fe4d0ba1 | 53 |