1d4afb5ceSopenharmony_ci# lws minimal http client POST 2d4afb5ceSopenharmony_ci 3d4afb5ceSopenharmony_ciThis example demonstrates a multipart POST to 4d4afb5ceSopenharmony_ci 5d4afb5ceSopenharmony_cihttps://libwebsockets.org/testserver/formtest 6d4afb5ceSopenharmony_ci 7d4afb5ceSopenharmony_cisetting both a form variable and uploading a 8d4afb5ceSopenharmony_cishort file. 9d4afb5ceSopenharmony_ci 10d4afb5ceSopenharmony_ciThe result of the POST form processing is captured 11d4afb5ceSopenharmony_ciand displayed in a hexdump. 12d4afb5ceSopenharmony_ci 13d4afb5ceSopenharmony_ciThis is programmatically POSTing to the same 14d4afb5ceSopenharmony_ciform you can access at 15d4afb5ceSopenharmony_ci 16d4afb5ceSopenharmony_cihttps://libwebsockets.org/testserver 17d4afb5ceSopenharmony_ci 18d4afb5ceSopenharmony_ciin the "POST" tab with file upload. 19d4afb5ceSopenharmony_ci 20d4afb5ceSopenharmony_ciBy default the client action occurs using http/2 if 21d4afb5ceSopenharmony_ciyour lws was built with `-DLWS_WITH_HTTP2=1`. 22d4afb5ceSopenharmony_ci 23d4afb5ceSopenharmony_ci## build 24d4afb5ceSopenharmony_ci 25d4afb5ceSopenharmony_ci``` 26d4afb5ceSopenharmony_ci $ cmake . && make 27d4afb5ceSopenharmony_ci``` 28d4afb5ceSopenharmony_ci 29d4afb5ceSopenharmony_ci## usage 30d4afb5ceSopenharmony_ci 31d4afb5ceSopenharmony_ci``` 32d4afb5ceSopenharmony_ci $ ./lws-minimal-http-client-post 33d4afb5ceSopenharmony_ci[2018/04/03 13:13:10:7891] USER: LWS minimal http client - POST 34d4afb5ceSopenharmony_ci[2018/04/03 13:13:10:7905] NOTICE: Creating Vhost 'default' (serving disabled), 1 protocols, IPv6 on 35d4afb5ceSopenharmony_ci[2018/04/03 13:13:10:7984] NOTICE: created client ssl context for default 36d4afb5ceSopenharmony_ci[2018/04/03 13:13:12:8444] USER: LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER 37d4afb5ceSopenharmony_ci[2018/04/03 13:13:12:8444] USER: LWS_CALLBACK_CLIENT_HTTP_WRITEABLE 38d4afb5ceSopenharmony_ci[2018/04/03 13:13:12:8445] USER: LWS_CALLBACK_CLIENT_HTTP_WRITEABLE 39d4afb5ceSopenharmony_ci[2018/04/03 13:13:12:8445] USER: LWS_CALLBACK_CLIENT_HTTP_WRITEABLE 40d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1437] USER: LWS_CALLBACK_CLIENT_HTTP_WRITEABLE 41d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1440] USER: LWS_CALLBACK_CLIENT_HTTP_WRITEABLE 42d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1440] USER: RECEIVE_CLIENT_HTTP_READ: read 402 43d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1441] NOTICE: 44d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1441] NOTICE: 0000: 3C 68 74 6D 6C 3E 3C 62 6F 64 79 3E 3C 68 31 3E <html><body><h1> 45d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1441] NOTICE: 0010: 46 6F 72 6D 20 72 65 73 75 6C 74 73 20 28 61 66 Form results (af 46d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1441] NOTICE: 0020: 74 65 72 20 75 72 6C 64 65 63 6F 64 69 6E 67 29 ter urldecoding) 47d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1441] NOTICE: 0030: 3C 2F 68 31 3E 3C 74 61 62 6C 65 3E 3C 74 72 3E </h1><table><tr> 48d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1441] NOTICE: 0040: 3C 74 64 3E 4E 61 6D 65 3C 2F 74 64 3E 3C 74 64 <td>Name</td><td 49d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1441] NOTICE: 0050: 3E 4C 65 6E 67 74 68 3C 2F 74 64 3E 3C 74 64 3E >Length</td><td> 50d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1441] NOTICE: 0060: 56 61 6C 75 65 3C 2F 74 64 3E 3C 2F 74 72 3E 3C Value</td></tr>< 51d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1441] NOTICE: 0070: 74 72 3E 3C 74 64 3E 3C 62 3E 74 65 78 74 3C 2F tr><td><b>text</ 52d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1441] NOTICE: 0080: 62 3E 3C 2F 74 64 3E 3C 74 64 3E 31 33 3C 2F 74 b></td><td>13</t 53d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1441] NOTICE: 0090: 64 3E 3C 74 64 3E 6D 79 20 74 65 78 74 20 66 69 d><td>my text fi 54d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1441] NOTICE: 00A0: 65 6C 64 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 74 72 eld</td></tr><tr 55d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1441] NOTICE: 00B0: 3E 3C 74 64 3E 3C 62 3E 73 65 6E 64 3C 2F 62 3E ><td><b>send</b> 56d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1441] NOTICE: 00C0: 3C 2F 74 64 3E 3C 74 64 3E 30 3C 2F 74 64 3E 3C </td><td>0</td>< 57d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1442] NOTICE: 00D0: 74 64 3E 4E 55 4C 4C 3C 2F 74 64 3E 3C 2F 74 72 td>NULL</td></tr 58d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1442] NOTICE: 00E0: 3E 3C 74 72 3E 3C 74 64 3E 3C 62 3E 66 69 6C 65 ><tr><td><b>file 59d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1442] NOTICE: 00F0: 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 30 3C 2F </b></td><td>0</ 60d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1442] NOTICE: 0100: 74 64 3E 3C 74 64 3E 4E 55 4C 4C 3C 2F 74 64 3E td><td>NULL</td> 61d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1442] NOTICE: 0110: 3C 2F 74 72 3E 3C 74 72 3E 3C 74 64 3E 3C 62 3E </tr><tr><td><b> 62d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1442] NOTICE: 0120: 75 70 6C 6F 61 64 3C 2F 62 3E 3C 2F 74 64 3E 3C upload</b></td>< 63d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1442] NOTICE: 0130: 74 64 3E 30 3C 2F 74 64 3E 3C 74 64 3E 4E 55 4C td>0</td><td>NUL 64d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1442] NOTICE: 0140: 4C 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 L</td></tr></tab 65d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1442] NOTICE: 0150: 6C 65 3E 3C 62 72 3E 3C 62 3E 66 69 6C 65 6E 61 le><br><b>filena 66d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1442] NOTICE: 0160: 6D 65 3A 3C 2F 62 3E 20 6D 79 66 69 6C 65 2E 74 me:</b> myfile.t 67d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1442] NOTICE: 0170: 78 74 2C 20 3C 62 3E 6C 65 6E 67 74 68 3C 2F 62 xt, <b>length</b 68d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1442] NOTICE: 0180: 3E 20 34 34 3C 2F 62 6F 64 79 3E 3C 2F 68 74 6D > 44</body></htm 69d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1442] NOTICE: 0190: 6C 3E l> 70d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1442] NOTICE: 71d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1442] USER: LWS_CALLBACK_COMPLETED_CLIENT_HTTP 72d4afb5ceSopenharmony_ci[2018/04/03 13:13:13:1455] USER: Completed 73d4afb5ceSopenharmony_ci``` 74d4afb5ceSopenharmony_ci 75