2016-08-29 6 views
1

Ich versuche, eine XML-Datei zu activeMQ Server mit 'ElementTree' erzeugt senden mithilfe von Code Python django 'Anfragen' Bibliothek .My views.py ist:XML activeMQ mit Django

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") 

und es gibt eine einfache Schaltfläche zum Senden auf der indexer.html Seite.

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

Wenn ich klicken eintragen filename.xml Datei ist zu erzeugen und dann erfolgreich zu activeMQ Server zu senden, aber activeMQ ich bin XML-Nachricht erhalten, die auch Header-Informationen enthält. Also, ist es möglich, nur Körperteile ohne Header zu senden oder wie Header auf der ActiveMQ-Seite wegzulassen und nur Body/Datenteil zu behalten? Bei activeMQ Ich erhalte folgende Meldung:

--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-- 

Antwort