问题描述
我试图用multipart / form-data对一个python GAE后端进行http'POST'。
我的服务器端方法正在接收完整的正文但我完全不知道如何解析正文内容而不必手动覆盖并分割文本的值。
Im trying to do a http 'POST' with multipart/form-data to a python GAE backend.My server side method is receiving the complete body but i have absolutely no idea how to parse the body content without going over it manually and splitting the text for values.
我的请求如下所示:
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
...
--*****--
感谢有人可以帮助我。谢谢。
I've searched around and couldn't find a good explanation of how to do this trivial thing.Appreciate if someone could help me here. Thanks.
推荐答案
出于某种原因,cgi.FieldStorage()不适用于我,但只有弃用的方法:
For some reason cgi.FieldStorage() wasnt working for me, but only the deprecated method :
pdict = {'boundary':'*****'}
cgi.parse_multipart(self.request.body_file, pdict)
不知道为什么,但只要它能够正常工作。
Dont know why but as long as its working im fine with that.
这篇关于Python - 在服务器端解析multipart / form-data请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!