簡體   English   中英

Python - 在服務器端解析multipart / form-data請求

[英]Python - Parsing multipart/form-data request on server side

我試圖用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)

不知道為什么,但只要它的工作即時通訊。

你想要.cgi python庫。

具體是這樣的:

import cgi
form = cgi.FieldStorage() 
value1 = form.getfirst("value1", "")
value2 = form.getfirst("value2", "") 
value3 = form.getfirst("value3", "") 
logtext = form.getfirst("logText", "")

如果您想要上傳的文件,可以執行此操作

for upload in self.get_uploads():

如果您只想要一個文本字段:

x = self.request.get('value1')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM