1*1c60b9acSAndroid Build Coastguard Worker# lws minimal http client 2*1c60b9acSAndroid Build Coastguard Worker 3*1c60b9acSAndroid Build Coastguard WorkerThe application goes to either https://warmcat.com or 4*1c60b9acSAndroid Build Coastguard Workerhttps://localhost:7681 (with `-l` option) and receives the page data. 5*1c60b9acSAndroid Build Coastguard Worker 6*1c60b9acSAndroid Build Coastguard Worker## build 7*1c60b9acSAndroid Build Coastguard Worker 8*1c60b9acSAndroid Build Coastguard Worker``` 9*1c60b9acSAndroid Build Coastguard Worker $ cmake . && make 10*1c60b9acSAndroid Build Coastguard Worker``` 11*1c60b9acSAndroid Build Coastguard Worker 12*1c60b9acSAndroid Build Coastguard Worker## usage 13*1c60b9acSAndroid Build Coastguard Worker 14*1c60b9acSAndroid Build Coastguard WorkerCommandline option|Meaning 15*1c60b9acSAndroid Build Coastguard Worker---|--- 16*1c60b9acSAndroid Build Coastguard Worker-d <loglevel>|Debug verbosity in decimal, eg, -d15 17*1c60b9acSAndroid Build Coastguard Worker-l| Connect to https://localhost:7681 and accept selfsigned cert 18*1c60b9acSAndroid Build Coastguard Worker--h1|Specify http/1.1 only using ALPN, rejects h2 even if server supports it 19*1c60b9acSAndroid Build Coastguard Worker--server <name>|set server name to connect to 20*1c60b9acSAndroid Build Coastguard Worker-k|Apply tls option LCCSCF_ALLOW_INSECURE 21*1c60b9acSAndroid Build Coastguard Worker-j|Apply tls option LCCSCF_ALLOW_SELFSIGNED 22*1c60b9acSAndroid Build Coastguard Worker-m|Apply tls option LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK 23*1c60b9acSAndroid Build Coastguard Worker-e|Apply tls option LCCSCF_ALLOW_EXPIRED 24*1c60b9acSAndroid Build Coastguard Worker-b|Apply tls option LCCSCF_CACHE_COOKIES 25*1c60b9acSAndroid Build Coastguard Worker-w|For mbedtls/wolfssl, load wrong CA cert (expected to fail) 26*1c60b9acSAndroid Build Coastguard Worker-c <cookie jar file>|Set filepath used for cookie jar 27*1c60b9acSAndroid Build Coastguard Worker-v|Connection validity use 3s / 10s instead of default 5m / 5m10s 28*1c60b9acSAndroid Build Coastguard Worker--nossl| disable ssl connection 29*1c60b9acSAndroid Build Coastguard Worker--user <username>| Set Basic Auth username 30*1c60b9acSAndroid Build Coastguard Worker--password <password> | Set Basic Auth password 31*1c60b9acSAndroid Build Coastguard Worker 32*1c60b9acSAndroid Build Coastguard Worker``` 33*1c60b9acSAndroid Build Coastguard Worker $ ./lws-minimal-http-client 34*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:20:8562] USER: LWS minimal http client 35*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:20:8571] NOTICE: Creating Vhost 'default' port -1, 1 protocols, IPv6 on 36*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:20:8616] NOTICE: created client ssl context for default 37*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:20:8617] NOTICE: lws_client_connect_2: 0x1814dc0: address warmcat.com 38*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:21:1496] NOTICE: lws_client_connect_2: 0x1814dc0: address warmcat.com 39*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:0154] NOTICE: lws_client_interpret_server_handshake: incoming content length 26520 40*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:0154] NOTICE: lws_client_interpret_server_handshake: client connection up 41*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:0169] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 42*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:0169] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 43*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:0169] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 44*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:0169] USER: RECEIVE_CLIENT_HTTP_READ: read 1015 45*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:0174] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 46*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:0174] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 47*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:0174] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 48*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:0174] USER: RECEIVE_CLIENT_HTTP_READ: read 1015 49*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:0179] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 50*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:0179] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 51*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:0179] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 52*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:0179] USER: RECEIVE_CLIENT_HTTP_READ: read 1015 53*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:3010] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 54*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:3010] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 55*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:3010] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 56*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:3010] USER: RECEIVE_CLIENT_HTTP_READ: read 1015 57*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:3015] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 58*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:3015] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 59*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:3015] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 60*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:3015] USER: RECEIVE_CLIENT_HTTP_READ: read 1015 61*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:3020] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 62*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:3020] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 63*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:3020] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 64*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:3020] USER: RECEIVE_CLIENT_HTTP_READ: read 1015 65*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:3022] USER: RECEIVE_CLIENT_HTTP_READ: read 1024 66*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:3022] USER: RECEIVE_CLIENT_HTTP_READ: read 974 67*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:22:3022] NOTICE: lws_http_client_read: transaction completed says -1 68*1c60b9acSAndroid Build Coastguard Worker[2018/03/04 14:43:23:3042] USER: Completed 69*1c60b9acSAndroid Build Coastguard Worker``` 70*1c60b9acSAndroid Build Coastguard Worker 71*1c60b9acSAndroid Build Coastguard WorkerYou can also test the client Basic Auth support against the http-server/minimal-http-server-basicauth 72*1c60b9acSAndroid Build Coastguard Workerexample. In one console window run the server and in the other 73*1c60b9acSAndroid Build Coastguard Worker 74*1c60b9acSAndroid Build Coastguard Worker``` 75*1c60b9acSAndroid Build Coastguard Worker$ lws-minimal-http-client -l --nossl --path /secret/index.html --user user --password password 76*1c60b9acSAndroid Build Coastguard Worker``` 77*1c60b9acSAndroid Build Coastguard Worker 78*1c60b9acSAndroid Build Coastguard WorkerThe Basic Auth credentials for the test server are literally username "user" and password "password". 79*1c60b9acSAndroid Build Coastguard Worker 80