From a7e5f636126d7a13dfea77ae2963954cff50843a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20Abdelkader=20Mart=C3=ADnez=20P=C3=A9rez?= Date: Tue, 9 Jul 2019 11:31:55 +0200 Subject: [PATCH] Added new resources to expose form fields and form fields with files. --- poc/bin/kapow | 11 +++++++++++ spec/README.md | 6 +++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/poc/bin/kapow b/poc/bin/kapow index f494b0a..a1a0e8c 100755 --- a/poc/bin/kapow +++ b/poc/bin/kapow @@ -83,8 +83,19 @@ class Connection: return self.request.headers[nth(2)].encode('utf-8') elif res.path.startswith('request/cookies/'): return self.request.cookies[nth(2)].encode('utf-8') + elif res.path == 'request/form': + data = await self.request.post() + files = [fieldname.encode('utf-8') + for fieldname, field in data.items()] + return b'\n'.join(files) elif res.path.startswith('request/form/'): return (await self.request.post())[nth(2)].encode('utf-8') + elif res.path == 'request/files': + data = await self.request.post() + files = [fieldname.encode('utf-8') + for fieldname, field in data.items() + if hasattr(field, 'filename')] + return b'\n'.join(files) elif res.path.startswith('request/files/'): name = nth(2) content = nth(3) # filename / content diff --git a/spec/README.md b/spec/README.md index 7604e6d..ff33aa2 100644 --- a/spec/README.md +++ b/spec/README.md @@ -415,9 +415,9 @@ following resource paths: │ │ └──── │ ├──── cookies HTTP request cookie │ │ └──── -│ ├──── form Form-urlencoded form fields -│ │ └──── -│ ├──── files Files uploaded via multi-part form fields +│ ├──── form Form-urlencoded form fields (names only) +│ │ └──── Value of the form field with name +│ ├──── files Files uploaded via multi-part form fields (names only) │ │ └──── │ │ └──── filename Original file name │ │ └──── content The file content