python – How can I send an xml body using requests library?

python – How can I send an xml body using requests library?

Just send xml bytes directly:

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
import requests

xml = <?xml version=1.0 encoding=utf-8?>
<a>б</a>
headers = {Content-Type: application/xml} # set what your server accepts
print requests.post(http://httpbin.org/post, data=xml, headers=headers).text

Output

{
  origin: x.x.x.x,
  files: {},
  form: {},
  url: http://httpbin.org/post,
  args: {},
  headers: {
    Content-Length: 48,
    Accept-Encoding: identity, deflate, compress, gzip,
    Connection: keep-alive,
    Accept: */*,
    User-Agent: python-requests/0.13.9 CPython/2.7.3 Linux/3.2.0-30-generic,
    Host: httpbin.org,
    Content-Type: application/xml
  },
  json: null,
  data: <?xml version=1.0 encoding=utf-8?>n<a>u0431</a>
}

Pass in the straight XML instead of a dictionary.

python – How can I send an xml body using requests library?

Leave a Reply

Your email address will not be published. Required fields are marked *