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