Forum Discussion

CoolP's avatar
CoolP
Regular Visitor
7 years ago

POSTing an XML file/contents as a request to an API endpoint

Hello Experts,

 

I'm able to pass an XML file (multipart/form-data) to an API endpoint paramter (xmlRequest) using the POST method and get the response in a csv file/records.

 

The above worked using Postman and also via Python.

 

How to do this in Power Query / M?

 

I have tried to do it using "Web.Contents" method and by passing the XML data to the "Content" attribute with no luck.

 

Thanks

CoolP

1 Reply

  • zoloturu's avatar
    zoloturu
    Icon for Memorable Member rankMemorable Member

    Hello CoolP,

     

    I have an example of POST request:

     

     

    let
        strBody = "[{""Text"":""" & Text.Replace(varInputText,"""","'") & """}]",
        Source = Web.Contents("https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=en", [Headers=[#"Ocp-Apim-Subscription-Key"="11111111111111111", #"Content-type"="application/json"], Content=Text.ToBinary(strBody)])
    in
        Source

    The logic here is:

     

    * to use Content=Text.ToBinary(), so then your GET request will be transformed to POST

    * to have strBody variable which stores content you want to send via POST request

    Some information about this approach - https://blog.crossjoin.co.uk/2014/04/19/web-services-and-post-requests-in-power-query/

     

    Regards,
    Ruslan
    -------------------------------------------------------------------
    Did I answer your question? Mark my post as a solution!