Python-在服务器端解析multipart / form-data请求


问题内容

我正在尝试将multipart / form-data的http’POST’发送到python
GAE后端。我的服务器端方法正在接收完整的正文,但是我绝对不知道如何在不手动检查正文内容并将文本拆分为值的情况下解析正文内容。

我的请求如下所示:

POST /android/v4/MyPostMethod HTTP/1.1
Accept: */*
Accept-Charset: *
Content-Length: 186808
Content-Type: multipart/form-data; boundary=*****; charset="utf-8"
Content_Length: 186808
Content_Type: multipart/form-data; boundary=*****
Host: myhost.appspot.com
User-Agent: Dalvik/1.6.0 (Linux; U; Android 4.1.2; GT-I9300 Build/XXXXX)
Via: HTTP/1.1 MSP-YV

--*****
Content-Disposition: form-data; name="value1"
Content-Type: text/plain; charset=UTF-8

f0ef73c5-54dd-40cf-9ee7-5c4cb764eb28
--*****
Content-Disposition: form-data; name="value2"
Content-Type: text/plain; charset=UTF-8

10d71e73-4d4d-4607-b271-f7efcfd0c59d
--*****
Content-Disposition: form-data; name="value3"
Content-Type: text/plain; charset=UTF-8

10d71e73-4d4d-4607-b271-f7efdfdfdfdf
--*****
Content-Disposition: form-data; name="logText"; filename="log.txt"
Content-Type: text/plain
Content-Transfer-Encoding: binary

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
...
--*****--

我到处搜索,找不到关于如何执行此琐碎事情的很好的解释。感谢有人可以在这里帮助我。谢谢。


问题答案:

由于某些原因,cgi.FieldStorage()对我不起作用,但仅不推荐使用的方法:

pdict = {'boundary':'*****'}
cgi.parse_multipart(self.request.body_file, pdict)

不知道为什么,但是只要它可以正常工作。