Python 带有XML数据的HTTP POST在Django中不起作用
我用django活塞实现了API,它从Python 带有XML数据的HTTP POST在Django中不起作用,python,django,django-piston,Python,Django,Django Piston,我用django活塞实现了API,它从sms/mms获取数据。对于彩信,我必须将XML数据与图像等一起发布。这是我在handlers.py上的代码片段 def create(self, request,*args,**kwagrs): try: file_type = None raw_data = request.raw_post_data data = serializers.dese
sms/mms
获取数据。对于彩信,我必须将XML数据与图像等一起发布。这是我在handlers.py上的代码片段
def create(self, request,*args,**kwagrs):
try:
file_type = None
raw_data = request.raw_post_data
data = serializers.deserialize("xml", raw_data)
try:
parser = Parse(data.stream.getvalue())
message = parser.get_message()
action_id = parser.get_action_id()
except Exception,e:
return HttpResponse(Response({'sender':parser.get_sender(),'error_description':str(e)}).get_error_response(), mimetype='text/xml')
if action_id in ['o','m','vt','vh','yritys']:
return self.post_message(request,parser)
elif action_id == 'poista' or action_id == 'lopeta':
return self.expired_message(request,parser)
elif action_id == 'tiedot':
return self.get_contact_info(request,parser)
except Exception,e:
ad_id = None
return HttpResponse(Response({'sender':parser.get_sender(),'error_description':str(e)}).get_error_response(), mimetype='text/xml')
当我使用CURL
发布xml数据时,它可以正常工作,但当我使用Firefox
时,httprequester
它会抛出我“坏请求”
尝试API测试。检查你的帖子数据。如果需要,设置标题信息 检查以下内容:
将中间件创建为:
class ContentTypeMiddleware(object):
def process_request(self, request):
if 'charset=UTF-8' in request.META['CONTENT_TYPE']:
request.META['CONTENT_TYPE'] = request.META['CONTENT_TYPE'].replace('; charset=UTF-8','')
return None
将其添加到设置中:
中间件\u类=(
“app.middleware.ContentTypeMiddleware”,
)检查发布时返回的400(使用Firebug或Chrome/Safari web inspector)。这可能是因为您发送了不适当的参数-活塞应该为您提供某种deedbackwell api,我正在使用httpRequester发布此消息,那么我如何使用Firebug检查此消息?请建议。