Sending a request with XML data

I am currently trying to send a request in the pre-request script and it requires that I pass XML data. How to I send said data and then send it successfully?

I would try something like this:

const xmlBody = `<?xml version="1.0"?>
<catalog>
   <book id="bk101">
      <author>John Doe</author>
      <title>Postman Developer's Guide</title>
      <genre>Computer</genre>
      <price>44.95</price>
      <publish_date>2019-10-01</publish_date>
      <description>An in-depth look at creating APIs 
      with Postman.</description>
   </book>
</catalog>`;

const options = {
  'method': 'POST',
  'url': 'httpbin.org/post',
  'header': {
    'Content-Type': 'application/xml'
  },
  body: xmlBody

}
pm.sendRequest(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body);
});

Does this help?

A bit, what if I am also adding in a variable that I am referencing from my environment?

This would be an example of the dat I am passing:

<SERVICE __source="172.24.17.191" __ts="1550188134543" md5=" + pm.environment.get(“md5”) + `" request_type=“PMGetMerchantList” session_id=“hoef.184658.756” source_id="/172.24.16.192:56628" version=“2” />

You can use the new pm.variables.replaceIn function like this:

const xmlBody = `<?xml version="1.0"?>
<catalog>
   <book id="bk101">
      <author>Gambardella, Matthew</author>
      <title>XML Developer's Guide</title>
      <genre>Computer</genre>
      <price>{{price}}</price>
      <publish_date>2000-10-01</publish_date>
      <description>An in-depth look at creating applications 
      with XML.</description>
   </book>
</catalog>`;

const options = {
  'method': 'POST',
  'url': 'httpbin.org/post',
  'header': {
    'Content-Type': 'application/xml'
  },
  body: pm.variables.replaceIn(xmlBody)

}


pm.sendRequest(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body);
});

@vdespa This is the response body I am getting when I run my request in the pre-request script. When I try to convert it to JSON (using xml2Json()), it returns null. Is this still XML or is it something else? If the response body is XML, why is this failing?

Sometimes invalid XML can make the xml2Json function return null.