@@ -187,6 +187,28 @@ async def serve_request(self, reader, writer):
187187 self .serving = False
188188 except OSError as e :
189189 print (e )
190+
191+ def parse_form_data (self , form_data_raw ):
192+ form_data = {}
193+ for pair in form_data_raw .split ('&' ):
194+ key , value = pair .split ('=' )
195+ form_data [self .url_decode (key )] = self .url_decode (value )
196+ return form_data
197+
198+ def url_decode (self , encoded_str ):
199+ decoded_str = ""
200+ i = 0
201+ while i < len (encoded_str ):
202+ if encoded_str [i ] == '%' :
203+ hex_code = encoded_str [i + 1 :i + 3 ]
204+ char = chr (int (hex_code , 16 ))
205+ decoded_str += char
206+ i += 3
207+ else :
208+ decoded_str += encoded_str [i ]
209+ i += 1
210+ return decoded_str
211+
190212
191213 def dir_exists (self , filename ):
192214 try :
@@ -323,13 +345,6 @@ def blink_element(element, pin, duration=0.27):
323345 blink_element (element , led_pin )
324346 await asyncio .sleep (delay_between_digits if element != '.' else 2 * delay_between_digits )
325347 await asyncio .sleep (delay_between_repititions )
326-
327- def parse_form_data (self , form_data_raw ):
328- form_data = {}
329- for pair in form_data_raw .split ('&' ):
330- key , value = pair .split ('=' )
331- form_data [key ] = value
332- return form_data
333348
334349
335350 def list_files_and_folders (self , path ):
0 commit comments