xref: /aosp_15_r20/external/libwebsockets/minimal-examples/http-client/minimal-http-client/README.md (revision 1c60b9aca93fdbc9b5f19b2d2194c91294b22281)
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