Python 用于解析返回错误的xml post请求的Flask Api

Python 用于解析返回错误的xml post请求的Flask Api,python,xml,curl,flask,xmltodict,Python,Xml,Curl,Flask,Xmltodict,我正在编写一个python flask api,以使用xml解析和操作xml。以下是我的初始代码: from flask import Flask, jsonify, abort, make_response, request, render_template import sys, sqlite3, requests, datetime, time, re, json, optparse import xmltodict import helpers import platform app

我正在编写一个python flask api,以使用xml解析和操作xml。以下是我的初始代码:

from flask import Flask, jsonify, abort, make_response, request, 
render_template
import sys, sqlite3, requests, datetime, time, re, json, optparse
import xmltodict
import helpers
import platform
app = Flask(__name__)

start = int(round(time.time()))
print("api running")

@app.route("/", methods=['GET', 'POST'])
def parse_xml():
    content_dict = xmltodict.parse(request.data)
    return content_dict

if __name__ == '__main__':
    print("Starting python app")
    app.run(host='0.0.0.0', port=8080, debug=False)
下面的curl请求:
curl-H“授权:承载令牌”-X POST-d'JackHello,成功了!”url

返回错误:

2018-04-18T13:33:38.831293275Z[2018-04-18 13:33:38830]应用程序中的错误: 2018-04-18T13:33:38.831324305Z回溯(most)上的例外情况 最近一次通话(最后一次):2018-04-18T13:33:38.831331225Z文件 “/usr/lib/python2.7/site packages/flask/app.py”,第1982行,在 wsgi_app 2018-04-18T13:33:38.831336961Z响应= self.full_dispatch_request()2018-04-18T13:33:38.83134283Z文件 “/usr/lib/python2.7/site packages/flask/app.py”,第1614行,in 完整调度请求2018-04-18T13:33:38.831352063Z rv= self.handle\u user\u异常(e)2018-04-18T13:33:38.831357531Z文件 “/usr/lib/python2.7/site packages/flask/app.py”,第1517行,in 处理用户异常2018-04-18T13:33:38.83136302Z
重新发布(exc_类型,exc_值,tb)2018-04-18T13:33:38.831367481Z文件 “/usr/lib/python2.7/site packages/flask/app.py”,第1612行,在 完整调度请求2018-04-18T13:33:38.831372038Z rv= self.dispatch_request()2018-04-18T13:33:38.831377673Z文件 “/usr/lib/python2.7/site packages/flask/app.py”,第1598行,in 发送请求2018-04-18T13:33:38.831385927Z返回 self.view\u函数rule.endpoint 2018-04-18T13:33:38.831391913Z文件“/src/simpleap.py”,第14行,在 解析xml 2018-04-18T13:33:38.831396571Z内容= xmltodict.parse(request.data)2018-04-18T13:33:38.831401027Z文件 “/usr/lib/python2.7/site packages/xmltodict.py”,第330行,在parse中 2018-04-18T13:33:38.831407166Z parser.Parse(xml_输入,True) 2018-04-18T13:33:38.831412259Z错误:未找到元素:第1行, 第0列2018-04-18T13:33:38.831705887Z 100.96.2.171---[2018年4月18日] 13:33:38]“POST/HTTP/1.1”500-


任何帮助都将不胜感激,谢谢。

为了便于处理,您必须将您的curl请求更改为key=value对

卷曲:

答复:

{
  "xml": {
      "Body": "Hello, it worked!",
      "From": "Jack"
  }
}

您还可以使用curl来发布XML文件内容:

curl -X POST -d @data.xml  -H 'Accept: application/xml'  -H 'Content-Type: application/xml' url
data.xml
内容:

<xml>
 <From>Jack</From>
 <Body>Hello, it worked!</Body>
</xml>

杰克
你好,成功了!
curl -X POST -d @data.xml  -H 'Accept: application/xml'  -H 'Content-Type: application/xml' url
<xml>
 <From>Jack</From>
 <Body>Hello, it worked!</Body>
</xml>