Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 5003

MicroPython • Size of web page handled by a Pico W server?

$
0
0
The code below is from a ubiquitous example of how to run a webserver on a Raspberry Pi Pico W. I'm trying to use pieces of it to serve up a web page, but my page includes a lot of HTML formatting and is much larger, about 7 KB. When it runs it seems to only serve up about half of my HTML code; if I remove much (but not all) of the formatting code, it works.

In the example, the HTML part is very small:
html = """<!DOCTYPE html>
<html>
<head> <title>Pico W</title> </head>
<body> <h1>Pico W</h1>
<p>%s</p>
</body>
</html>
"""

Does anyone know if there is a limitation to the size of a web page that can be served up, and if there is any way to get around it?

Code:

import networkimport socketimport timefrom machine import Pinled = Pin(15, Pin.OUT)ssid = 'YOUR NETWORK NAME'password = 'YOUR NETWORK PASSWORD'wlan = network.WLAN(network.STA_IF)wlan.active(True)wlan.connect(ssid, password)html = """<!DOCTYPE html><html>    <head> <title>Pico W</title> </head>    <body> <h1>Pico W</h1>        <p>%s</p>    </body></html>"""max_wait = 10while max_wait > 0:    if wlan.status() < 0 or wlan.status() >= 3:        break    max_wait -= 1    print('waiting for connection...')    time.sleep(1)if wlan.status() != 3:    raise RuntimeError('network connection failed')else:    print('connected')    status = wlan.ifconfig()    print( 'ip = ' + status[0] )addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]s = socket.socket()s.bind(addr)s.listen(1)print('listening on', addr)# Listen for connectionswhile True:    try:        cl, addr = s.accept()        print('client connected from', addr)        request = cl.recv(1024)        print(request)        request = str(request)        led_on = request.find('/light/on')        led_off = request.find('/light/off')        print( 'led on = ' + str(led_on))        print( 'led off = ' + str(led_off))        if led_on == 6:            print("led on")            led.value(1)            stateis = "LED is ON"        if led_off == 6:            print("led off")            led.value(0)            stateis = "LED is OFF"        response = html % stateis        cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')        cl.send(response)        cl.close()    except OSError as e:        cl.close()        print('connection closed')

Statistics: Posted by JKJ — Thu Dec 19, 2024 2:56 pm



Viewing all articles
Browse latest Browse all 5003

Trending Articles