#!/usr/bin/env python
#encoding:utf-8
import cgi
import urlparse
import json
import os
class JSONFieldStorage(cgi.FieldStorage, object):
"""
FieldStorage类的改写,使其具有接收json的能力
"""
def read_urlencoded(self):
"""Internal: read data in query string format."""
qs = self.fp.read(self.length)
try:
self._json = json.loads(qs)
except Exception, e:
self._json = None
if self._json == None:
try:
self._json = json.loads(self.qs_on_post)
except:
self._json = None
if self.qs_on_post:
qs += '&' + self.qs_on_post
self.list = list = []
for key, value in urlparse.parse_qsl(qs, self.keep_blank_values,
self.strict_parsing):
list.append(cgi.MiniFieldStorage(key, value))
self.skip_lines()
def getJson(self):
try:
return self._json
except:
return None