【问题标题】:Send XML to activeMQ using Django使用 Django 将 XML 发送到 activeMQ
【发布时间】:2017-01-05 08:36:24
【问题描述】:

我正在尝试使用 python django 'requests' 库将使用 'ElementTree' 生成的 XML 文件发送到 activeMQ 服务器。我的 views.py 代码是:

from django.shortcuts import render
import requests
import xml.etree.cElementTree as ET
# Create your views here.

def index(request):
    return render(request,"indexer.html")


def xml(request):
    root = ET.Element("root")
    doc = ET.SubElement(root, "doc")
    field1 = ET.SubElement(doc,"field1")
    ET.SubElement(doc, "field2", fame="yeah", name="asdfasd").text = "some vlaue2"
    ET.SubElement(field1,"fielder", name="ksd").text = "valer"
    tree = ET.ElementTree(root)
    headers = {}
    tree.write("filename.xml", encoding = "us-ascii", xml_declaration = 'utf-8', default_namespace = xml, method = "xml")

    url = 'http://localhost:8082/testurl/'
    headers = {'Content-Type': 'application/xml'}
    files = {'file': open('filename.xml', 'rb')}
    requests.post(url, files=files, headers = headers)
    return render(request,"indexer.html")

indexer.html 页面上有一个简单的提交按钮。

<html>
<head>
</head>
<body>
<form method="post" action="/xml/">{% csrf_token %}
    <input type="submit" value="submit">
</form> 
</body>
</html>

当我单击提交按钮时,它正在生成 filename.xml 文件,然后将其成功发送到 activeMQ 服务器,但在 activeMQ 我收到的 XML 消息也包含标头信息。那么,是否可以只发送没有标题的正文部分,或者如何在 activeMQ 端省略标题并只保留正文/数据部分? 在 activeMQ 我收到以下消息:

--6dc760762ba245eb8e4c3d72aa38062b
Content-Disposition: form-data; name="file"; filename="filename.xml"

<root><doc><field1><fielder name="ksd">valer</fielder></field1><field2 fame="yeah" name="asdfasd">some vlaue2</field2></doc></root>
--6dc760762ba245eb8e4c3d72aa38062b--

【问题讨论】:

    标签: python xml django jms activemq


    【解决方案1】:

    我建议考虑使用可用的 STOMP 协议而不是 HTTP。您可以更好地控制消息负载和消息头。

    Python 库:https://pypi.python.org/pypi/stomp.py ActiveMQ 支持:http://activemq.apache.org/stomp.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-08
      • 1970-01-01
      • 2020-07-05
      • 2018-03-29
      • 1970-01-01
      • 2020-09-26
      • 2013-12-25
      • 1970-01-01
      相关资源
      最近更新 更多