Forum Discussion

thediez's avatar
thediez
Frequent Visitor
2 years ago
Solved

How to send a POST request with an empty body

Dear All,

 

I have been struggling with sending a POST request with an empty body to retrieve data.

The request requires authentication via refresh token which is working fine.

It seems that the Web.Contents is still trying to use GET method.

 

let
    body = null,
    Source = Json.Document(Web.Contents("https://www.vptol.co.uk/dlatest/QuestionnaireDataWithProfile?org=whoglmat&typ=WHOData", [Headers=[#"Authorization"="Bearer "&GetAccessTokenForAcasiResponses()], Content=body]))
in
    Source

 

Yield in this error message:

 

DataSource.Error: Web.Contents failed to get contents from 'https://www.vptol.co.uk/dlatest/QuestionnaireDataWithProfile?org=whoglmat&typ=WHOData' (405): Method Not Allowed
Details:
    DataSourceKind=Web
    DataSourcePath=https://www.vptol.co.uk/dlatest/QuestionnaireDataWithProfile
    Url=https://www.vptol.co.uk/dlatest/QuestionnaireDataWithProfile?org=whoglmat&typ=WHOData

 

 

Any help is appreciated.

 

Kind regards,

thediez

  • thediez  Can you check that credentials are set to Anonymous for the data source (since using Bearer Token)?

    Data source settings > select from the list > Edit Permissions

     

4 Replies

  • Hi thediez 

    Try making this change:

    body = Text.ToBinary(""),

    This seemed to work for me for another API POST request.

     

    Does this work for you?

    • thediez's avatar
      thediez
      Frequent Visitor

      Hi OwenAuger ,

       

      Thanks for the suggestion.

       

      I have updated as follows:

       

      let
          body = Text.ToBinary(""),
          Source = Json.Document(Web.Contents("https://www.vptol.co.uk/dlatest/QuestionnaireDataWithProfile?org=whoglmat&typ=WHOData", [Headers=[#"Authorization"="Bearer "&GetAccessTokenForAcasiResponses()], Content=body]))
      in
          Source

       

      But now getting this message.

      I suspect that adding "Content" in the brackets after "Header" is causing this error.

       

      Kind regards,

      Khurshed

      • OwenAuger's avatar
        OwenAuger
        Super User

        thediez  Can you check that credentials are set to Anonymous for the data source (since using Bearer Token)?

        Data source settings > select from the list > Edit Permissions