Skip to content

Instantly share code, notes, and snippets.

@hoest
Created September 6, 2012 11:47
Show Gist options
  • Save hoest/3655337 to your computer and use it in GitHub Desktop.
Save hoest/3655337 to your computer and use it in GitHub Desktop.
Simple Python script to post a XML file to an web-interface
import httplib
import xml.dom.minidom
HOST = "www.domain.nl"
API_URL = "/api/url"
def do_request(xml_location):
"""HTTP XML Post request"""
request = open(xml_location, "r").read()
webservice = httplib.HTTP(HOST)
webservice.putrequest("POST", API_URL)
webservice.putheader("Host", HOST)
webservice.putheader("User-Agent", "Python post")
webservice.putheader("Content-type", "text/xml; charset=\"UTF-8\"")
webservice.putheader("Content-length", "%d" % len(request))
webservice.endheaders()
webservice.send(request)
statuscode, statusmessage, header = webservice.getreply()
result = webservice.getfile().read()
resultxml = xml.dom.minidom.parseString(result)
print statuscode, statusmessage, header
print resultxml.toprettyxml()
with open("output-%s" % xml_location, "w") as xmlfile:
xmlfile.write(resultxml.toprettyxml())
do_request("xml-request-file.xml")
@xros
Copy link

xros commented Apr 16, 2014

This is really great for xml API service testing. Thanks for sharing!

@nicolasmendoza
Copy link

Thanks @hoest, it's great. also I prefer use always the standard python library.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment