A http client sample program.

Dependencies:   NyFileSystems libMiMic mbed-rtos mbed

Fork of TcpSocketClientSamlpe by Ryo Iizuka

Committer:
nyatla
Date:
Sun Apr 28 13:33:36 2013 +0000
Revision:
5:6a2a1644ea2c
Parent:
4:0a280ed0a848
Child:
6:20dcb08e1b43
Add sdcard and local file configulation.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 4:0a280ed0a848 1 /**
nyatla 4:0a280ed0a848 2 * @file * This is ModLocalFileSystem sample program.
nyatla 4:0a280ed0a848 3 *
nyatla 4:0a280ed0a848 4 * <pre>
nyatla 4:0a280ed0a848 5 * 1. Compile this program and write to your mbed.
nyatla 4:0a280ed0a848 6 * 2. Write files for testing to mbed disk.
nyatla 4:0a280ed0a848 7 * 2. Access via web browser to http://192.168.0.39/local/<filename>
nyatla 4:0a280ed0a848 8 * 3. You can see <filename> file on browser.
nyatla 4:0a280ed0a848 9 * </pre>
nyatla 4:0a280ed0a848 10 */
nyatla 5:6a2a1644ea2c 11 #include "mbed.h"
nyatla 5:6a2a1644ea2c 12 #include "SDFileSystem.h"
nyatla 0:ec1e45489427 13 #include "mimic.h"
nyatla 0:ec1e45489427 14
nyatla 0:ec1e45489427 15
nyatla 3:77431c2bd9cb 16 /**
nyatla 3:77431c2bd9cb 17 * local filesystem support.
nyatla 3:77431c2bd9cb 18 */
nyatla 3:77431c2bd9cb 19 LocalFileSystem lf("local");
nyatla 5:6a2a1644ea2c 20 SDFileSystem sd(p5, p6, p7, p8,"sd");
nyatla 0:ec1e45489427 21
nyatla 0:ec1e45489427 22 /**
nyatla 0:ec1e45489427 23 * MiMic RemoteMCU httpd.<br/>
nyatla 5:6a2a1644ea2c 24 * Number of simultaneous connections:4
nyatla 0:ec1e45489427 25 * <p>Service list</p>
nyatla 0:ec1e45489427 26 * <pre>
nyatla 0:ec1e45489427 27 * /local/ - mbed LocalFileSystem
nyatla 0:ec1e45489427 28 * </pre>
nyatla 0:ec1e45489427 29 */
nyatla 5:6a2a1644ea2c 30 class FsHttpd:public MiMic::Httpd
nyatla 0:ec1e45489427 31 {
nyatla 0:ec1e45489427 32 private:
nyatla 5:6a2a1644ea2c 33 ModLocalFileSystem modlocal;
nyatla 5:6a2a1644ea2c 34 ModLocalFileSystem modsd;
nyatla 0:ec1e45489427 35 public:
nyatla 5:6a2a1644ea2c 36 FsHttpd():Httpd(80)
nyatla 0:ec1e45489427 37 {
nyatla 3:77431c2bd9cb 38 //bind local file system path to /local/*
nyatla 5:6a2a1644ea2c 39 modlocal.setParam("local");
nyatla 5:6a2a1644ea2c 40 modsd.setParam("sd");
nyatla 0:ec1e45489427 41 }
nyatla 0:ec1e45489427 42 virtual void onRequest(HttpdConnection& i_connection)
nyatla 0:ec1e45489427 43 {
nyatla 5:6a2a1644ea2c 44 //try to ModLocalFileSystem
nyatla 5:6a2a1644ea2c 45 if(this->modlocal.execute(i_connection)){
nyatla 5:6a2a1644ea2c 46 return;
nyatla 5:6a2a1644ea2c 47 }
nyatla 5:6a2a1644ea2c 48 //try to ModLocalFileSystem(SD)
nyatla 5:6a2a1644ea2c 49 if(this->modsd.execute(i_connection)){
nyatla 0:ec1e45489427 50 return;
nyatla 0:ec1e45489427 51 }
nyatla 5:6a2a1644ea2c 52 //Otherwise, Send simple top index page.
nyatla 5:6a2a1644ea2c 53 i_connection.sendHeader(200,"text/html",NULL);
nyatla 5:6a2a1644ea2c 54 if(i_connection.isMethodType(Http::MT_GET)){
nyatla 5:6a2a1644ea2c 55 i_connection.sendBodyF(
nyatla 5:6a2a1644ea2c 56 "<!DOCTYPE html>"
nyatla 5:6a2a1644ea2c 57 "<html lang=\"ja\">"
nyatla 5:6a2a1644ea2c 58 "<head></head>"
nyatla 5:6a2a1644ea2c 59 "<body>"
nyatla 5:6a2a1644ea2c 60 "<h1>This is MiMic Server!</h1>"
nyatla 5:6a2a1644ea2c 61 "<hr/>"
nyatla 5:6a2a1644ea2c 62 "<ul>"
nyatla 5:6a2a1644ea2c 63 "<li><a href=\"/local/\">mbed Local Filesystem</a></li>"
nyatla 5:6a2a1644ea2c 64 "<li><a href=\"/sd/\">SDCard</a></li>"
nyatla 5:6a2a1644ea2c 65 "</ul></body>");
nyatla 5:6a2a1644ea2c 66 }
nyatla 0:ec1e45489427 67 }
nyatla 0:ec1e45489427 68 };
nyatla 0:ec1e45489427 69
nyatla 0:ec1e45489427 70 int main()
nyatla 0:ec1e45489427 71 {
nyatla 0:ec1e45489427 72 NetConfig cfg; //create network configulation
nyatla 0:ec1e45489427 73 Net net(cfg); //create a net instance.
nyatla 5:6a2a1644ea2c 74 //try to override setting by local file.
nyatla 5:6a2a1644ea2c 75 if(!cfg.loadFromFile("/local/mimic.cfg")){
nyatla 5:6a2a1644ea2c 76 cfg.loadFromFile("/sd/mimic.cfg");
nyatla 5:6a2a1644ea2c 77 }
nyatla 5:6a2a1644ea2c 78 FsHttpd httpd; //create a httpd instance.
nyatla 0:ec1e45489427 79 httpd.loop(); //start httpd loop.
nyatla 0:ec1e45489427 80 return 0;
nyatla 0:ec1e45489427 81 }