Fixed Sample POST/JSON
authorFulup Ar Foll <fulup@iot.bzh>
Fri, 13 May 2016 17:10:32 +0000 (19:10 +0200)
committerFulup Ar Foll <fulup@iot.bzh>
Fri, 13 May 2016 17:10:32 +0000 (19:10 +0200)
README.md
src/afb-hsrv.c
test/sample-post.html

index 0e966d1..17ddec2 100644 (file)
--- a/README.md
+++ b/README.md
@@ -45,6 +45,13 @@ $ cmake ..<br />
 $ make; make install<br />
 ```
 
+### Testing/Debug
+```
+$ AFB_DAEMON_DIR=$HOME/afb-daemon
+$ $AFB_DAEMON_DIR/build/afb-daemon --help
+$ $AFB_DAEMON_DIR/build/afb-daemon --port=1234 --token='' --ldpaths=$AFB_DAEMON_DIR/build --sessiondir=/tmp --rootdir=$AFB_DAEMON_DIR/test 
+```
+
 ### Starting
 ```
 $ afb-daemon --help 
index d235648..5b0153c 100644 (file)
@@ -156,7 +156,9 @@ static int access_handler(
                                if (hreq->postform == NULL)
                                        afb_hreq_reply_error(hreq, MHD_HTTP_INTERNAL_SERVER_ERROR);
                                return MHD_YES;
-                       } else if (strcasestr(type, JSON_CONTENT) == NULL) {
+                       } else if (strcasestr(type, JSON_CONTENT) != NULL) {
+                               return MHD_YES;
+                        } else {
                                afb_hreq_reply_error(hreq, MHD_HTTP_UNSUPPORTED_MEDIA_TYPE);
                                return MHD_YES;
                        }
index 337df97..b1486c3 100644 (file)
@@ -3,13 +3,59 @@
     <title>Sample Post test</title>
   <body>
     <h1>Sample Post test</h1>
+    
+    <h2>Sample Post File</h2>
     <form enctype="multipart/form-data">
-    <input type="file" name="file" />
-    <input type="hidden" name="hidden" value="bollobollo" />
-    <ol>
-     <li><button formmethod="POST" formaction="api/post/ping">ping</button>
-     <li><button formmethod="POST" formaction="api/post/upload-json">upload json</button>
-     <li><button formmethod="POST" formaction="api/post/upload-image">upload image</button>
-     <li><button formmethod="POST" formaction="api/post/upload-music">upload music</button>
-     <li><button formmethod="POST" formaction="api/post/upload-appli">upload application</button>
+        <input type="file" name="select input file" />
+        <input type="hidden" name="hidden" value="bollobollo" />
+        <br>
+        <button formmethod="POST" formaction="api/post/upload-image">Post File</button>
     </form>
+    
+    <h2>Sample Post JSON</h2>
+    
+    <form id="jsonform">
+        <input name='name' value='MyName'>
+        <input name='info' value='MyInfo'>
+        <select name='option'>
+        <option selected>opt1</option>
+        <option>opt2</option>
+        <option>opt3</option>
+        </select>
+        <label>ticked</label>
+        <input type='checkbox'  name='ticked'>
+    </form>
+    <p><input id="jsonrep" placeholder="AFB-daemon Response" readonly style="width: 100%">
+    <button onclick="xpost();">Post JSON</button>
+
+    <script>
+    // post bouton press post form as JSON
+    var xpost=function() {
+        var jform={};
+        var xform = document.querySelector('#jsonform').elements;
+        var xreqt = new XMLHttpRequest();
+        xreqt.open("POST", "api/post/upload-json", true);
+        xreqt.setRequestHeader('Content-Type', 'application/json');
+        
+        // Serialise jform in JSON
+        for(var ind = 0; ind < xform.length; ind++) {
+            console.log ("name=%s value=%s", xform[ind].name, xform[ind].value);
+            jform[xform[ind].name] = xform[ind].value;
+        }
+
+        // display afb-daemon return values
+        xreqt.onload = function () {
+            var result = "Status:" + xreqt.status + " Value:" + xreqt.responseText;
+            document.getElementById("jsonrep").value = result;
+            console.log (result);
+        };
+        
+        // Post Form as JSON
+        console.log ("Posting jform=%j", jform); 
+        xreqt.send(JSON.stringify(jform)); 
+    };
+    </script>
+
+    
+    </body>
+</html>    
\ No newline at end of file