Bladeren bron

http2_request_example: Change the target http2 server to `http2.github.io` and
perform only a `GET` request.

Aditya Patwardhan 4 jaren geleden
bovenliggende
commit
2b026ea1fa

+ 16 - 33
examples/protocols/http2_request/README.md

@@ -1,8 +1,7 @@
 # HTTP/2 Request Example
 
-Established HTTP/2 connection with https://http2.golang.org
-- Performs a GET on /clockstream
-- Performs a PUT on /ECHO
+Establish an HTTP/2 connection with https://http2.github.io
+- Performs a GET on /index.html
 
 ## How to use example
 Before project configuration and build, be sure to set the correct chip target using `idf.py set-target <chip_name>`.
@@ -36,37 +35,21 @@ See the Getting Started Guide for full steps to configure and use ESP-IDF to bui
 ## Example Output
 
 ```
-I (9637) example_connect: - IPv4 address: 192.168.194.219
-I (9637) example_connect: - IPv6 address: fe80:0000:0000:0000:266f:28ff:fe80:2c74, type: ESP_IP6_ADDR_IS_LINK_LOCAL
+I (5609) example_connect: - IPv4 address: 192.168.0.103
+I (5609) example_connect: - IPv6 address: fe80:0000:0000:0000:ae67:b2ff:fe45:0194, type: ESP_IP6_ADDR_IS_LINK_LOCAL
 Connecting to server
 Connection done
-[data-prvd] Sending 11 bytes
-[echo-response] HELLO WORLD
-[echo-response] Frame fully received
-[echo-response] Frame fully received
-[echo-response] Stream Closed
-[get-response] # ~1KB of junk to force browsers to start rendering immediately:
-# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-2021-09-07 08:22:10.73175944 +0000 UTC m=+530259.401042400
-
-[get-response] Frame fully received
-[get-response] 2021-09-07 08:22:11.73205314 +0000 UTC m=+530260.401336111
-
-[get-response] Frame fully received
-[get-response] 2021-09-07 08:22:12.7320106 +0000 UTC m=+530261.401293569
-
+[get-response] <!DOCTYPE HTML>
+<html lang="en">
+.
+.
+.
+Body of index.html
+.
+.
+.
+.
+</html>
 [get-response] Frame fully received
-[get-response] 2021-09-07 08:22:13.732013218 +0000 UTC m=+530262.401296183
+[get-response] Stream Closed
 ```

+ 5 - 8
examples/protocols/http2_request/example_test.py

@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #
-# SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
+# SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
 # SPDX-License-Identifier: Apache-2.0
 
 import http.client
@@ -11,7 +11,7 @@ import ttfw_idf
 from tiny_test_fw import Utility
 
 HTTP_OK = 200
-TEST_SERVER = 'http2.golang.org'
+TEST_SERVER = 'http2.github.io'
 
 
 def is_test_server_available():  # type: () -> bool
@@ -33,7 +33,7 @@ def test_examples_protocol_http2_request(env, extra_data):  # type: (tiny_test_f
     """
     steps: |
       1. join AP
-      2. connect to http2.golang.org
+      2. connect to http2.github.io
       3. send http2 request
       4. send http2 put response
     """
@@ -45,15 +45,12 @@ def test_examples_protocol_http2_request(env, extra_data):  # type: (tiny_test_f
     # start the test
     # check if test server is avilable
     test_server_available = is_test_server_available()
-    # Skip the test if the server test server (http2.golang.org) is not available at the moment.
+    # Skip the test if the server test server (http2.github.io) is not available at the moment.
     if test_server_available:
+        Utility.console_log('test server \"{}\" is available'.format(TEST_SERVER))
         dut1.start_app()
         # check for connection
         dut1.expect('Connection done', timeout=30)
-        # check for echo response
-        dut1.expect('[echo-response] HELLO WORLD', timeout=30)
-        dut1.expect('[echo-response] Frame fully received')
-        dut1.expect('[echo-response] Stream Closed')
         # check for get response
         dut1.expect('[get-response] Frame fully received')
     else:

+ 1 - 1
examples/protocols/http2_request/main/CMakeLists.txt

@@ -1,3 +1,3 @@
 idf_component_register(SRCS "http2_request_example_main.c"
                     INCLUDE_DIRS "."
-                    EMBED_TXTFILES "golang_root_cert.pem")
+                    EMBED_TXTFILES "http2_github_io_root_cert.pem")

+ 0 - 31
examples/protocols/http2_request/main/golang_root_cert.pem

@@ -1,31 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
-TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
-cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
-WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
-ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
-MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
-h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
-0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
-A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
-T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
-B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
-B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
-KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
-OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
-jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
-qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
-rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
-hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
-ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
-3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
-NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
-ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
-TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
-jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
-oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
-4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
-mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
-emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
------END CERTIFICATE-----

+ 28 - 0
examples/protocols/http2_request/main/http2_github_io_root_cert.pem

@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEsTCCA5mgAwIBAgIQBOHnpNxc8vNtwCtCuF0VnzANBgkqhkiG9w0BAQsFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTEzMTAyMjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowcDEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTEvMC0GA1UEAxMmRGlnaUNlcnQgU0hBMiBIaWdoIEFzc3Vy
+YW5jZSBTZXJ2ZXIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2
+4C/CJAbIbQRf1+8KZAayfSImZRauQkCbztyfn3YHPsMwVYcZuU+UDlqUH1VWtMIC
+Kq/QmO4LQNfE0DtyyBSe75CxEamu0si4QzrZCwvV1ZX1QK/IHe1NnF9Xt4ZQaJn1
+itrSxwUfqJfJ3KSxgoQtxq2lnMcZgqaFD15EWCo3j/018QsIJzJa9buLnqS9UdAn
+4t07QjOjBSjEuyjMmqwrIw14xnvmXnG3Sj4I+4G3FhahnSMSTeXXkgisdaScus0X
+sh5ENWV/UyU50RwKmmMbGZJ0aAo3wsJSSMs5WqK24V3B3aAguCGikyZvFEohQcft
+bZvySC/zA/WiaJJTL17jAgMBAAGjggFJMIIBRTASBgNVHRMBAf8ECDAGAQH/AgEA
+MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
+NAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy
+dC5jb20wSwYDVR0fBEQwQjBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNlcnQuY29t
+L0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDA9BgNVHSAENjA0MDIG
+BFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQ
+UzAdBgNVHQ4EFgQUUWj/kK8CB3U8zNllZGKiErhZcjswHwYDVR0jBBgwFoAUsT7D
+aQP4v0cB1JgmGggC72NkK8MwDQYJKoZIhvcNAQELBQADggEBABiKlYkD5m3fXPwd
+aOpKj4PWUS+Na0QWnqxj9dJubISZi6qBcYRb7TROsLd5kinMLYBq8I4g4Xmk/gNH
+E+r1hspZcX30BJZr01lYPf7TMSVcGDiEo+afgv2MW5gxTs14nhr9hctJqvIni5ly
+/D6q1UEL2tU2ob8cbkdJf17ZSHwD2f2LSaCYJkJA69aSEaRkCldUxPUd1gJea6zu
+xICaEnL6VpPX/78whQYwvwt/Tv9XBZ0k7YXDK/umdaisLRbvfXknsuvCnQsH6qqF
+0wGjIChBWUMo0oHjqvbsezt3tkBigAVBRQHvFwY+3sAzm2fTYS5yh+Rp/BIAV0Ae
+cPUeybQ=
+-----END CERTIFICATE-----

+ 5 - 11
examples/protocols/http2_request/main/http2_request_example_main.c

@@ -1,6 +1,6 @@
 /* HTTP2 GET Example using nghttp2
 
-   Contacts http2.golang.org and executes the GET/PUT requests. A thin API
+   Contacts http2.github.io and executes the GET request. A thin API
    wrapper on top of nghttp2, to properly demonstrate the interactions.
 
    This example code is in the Public Domain (or CC0 licensed, at your option.)
@@ -26,15 +26,13 @@
 #include "sh2lib.h"
 
 
-extern const uint8_t server_root_cert_pem_start[] asm("_binary_golang_root_cert_pem_start");
-extern const uint8_t server_root_cert_pem_end[]   asm("_binary_golang_root_cert_pem_end");
+extern const uint8_t server_root_cert_pem_start[] asm("_binary_http2_github_io_root_cert_pem_start");
+extern const uint8_t server_root_cert_pem_end[]   asm("_binary_http2_github_io_root_cert_pem_end");
 
 /* The HTTP/2 server to connect to */
-#define HTTP2_SERVER_URI  "https://http2.golang.org"
+#define HTTP2_SERVER_URI  "https://http2.github.io"
 /* A GET request that keeps streaming current time every second */
-#define HTTP2_STREAMING_GET_PATH  "/clockstream"
-/* A PUT request that echoes whatever we had sent to it */
-#define HTTP2_PUT_PATH            "/ECHO"
+#define HTTP2_STREAMING_GET_PATH  "/index.html"
 
 
 int handle_get_response(struct sh2lib_handle *handle, const char *data, size_t len, int flags)
@@ -120,10 +118,6 @@ static void http2_task(void *args)
 
     /* HTTP GET  */
     sh2lib_do_get(&hd, HTTP2_STREAMING_GET_PATH, handle_get_response);
-
-    /* HTTP PUT  */
-    sh2lib_do_put(&hd, HTTP2_PUT_PATH, send_put_data, handle_echo_response);
-
     while (1) {
         /* Process HTTP2 send/receive */
         if (sh2lib_execute(&hd) < 0) {