summaryrefslogtreecommitdiffstatshomepage
path: root/examples/network
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-04-02 23:19:03 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-04-02 23:19:03 +0300
commit4f2d59e82fa19be143f1dec59384c3df00d4ccf0 (patch)
tree81f1fc4ccad39fa473215f00618cabee4bd3d1bb /examples/network
parentec5f8db49de83d131a8507caba3681e224b11988 (diff)
downloadmicropython-4f2d59e82fa19be143f1dec59384c3df00d4ccf0.tar.gz
micropython-4f2d59e82fa19be143f1dec59384c3df00d4ccf0.zip
examples/http_client_ssl.py: HTTPS client example.
Diffstat (limited to 'examples/network')
-rw-r--r--examples/network/http_client_ssl.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/examples/network/http_client_ssl.py b/examples/network/http_client_ssl.py
new file mode 100644
index 0000000000..5d4d8fd1b5
--- /dev/null
+++ b/examples/network/http_client_ssl.py
@@ -0,0 +1,36 @@
+try:
+ import usocket as _socket
+except:
+ import _socket
+try:
+ import ussl as ssl
+except:
+ import ssl
+
+
+def main(use_stream=True):
+ s = _socket.socket()
+
+ ai = _socket.getaddrinfo("google.com", 443)
+ print("Address infos:", ai)
+ addr = ai[0][4]
+
+ print("Connect address:", addr)
+ s.connect(addr)
+
+ s = ssl.wrap_socket(s)
+ print(s)
+
+ if use_stream:
+ # Both CPython and MicroPython SSLSocket objects support read() and
+ # write() methods.
+ s.write(b"GET / HTTP/1.0\n\n")
+ print(s.read(4096))
+ else:
+ # MicroPython SSLSocket objects implement only stream interface, not
+ # socket interface
+ s.send(b"GET / HTTP/1.0\n\n")
+ print(s.recv(4096))
+
+
+main()