HTTP node needs both binary and JSON? Issue with "Response Format"

Hello,

I am trying to POST a PDF (binary) to Azure Cognitive Services.

I have two issues when using either “JSON/RAW Parameter”

  1. If using JSON, I can’t enter the binary PDF data for the body
  2. If using RAW, I can’t enter headers in JSON because the “Response Format” tries to add “accept” header to the JSON string and I can’t disable it. I’ve of course tried this without adding “accept” manually to the string.

I’ve tried using the Set node to create JSON, but because the HTTP node tries to add “accept” whatever I do, I get an error.

If I don’t use RAW, I can’t set the body to Binary data, it requires a key/value.

  • This seems really restricted, why can’t I set the Response Format to empty?
  • Why is it making me use it?
  • Why can I only have JSON or RAW for both body and header?

one-does-not-json-binary

Simply put; How is one supposed to send a PDF via HTTP with a custom (or no) “accept” header?

Thank you.

I found this from last year:

I am not sure if this applies to my situation, but has this node been updated to support?

Not it has not. This will probably be addressed in the HTTP node V2, but we do not have a timeline for that. Anyways, you can probably use the function node to do so. Can you share the docs to the endpoint your are trying to use?

Hi,

I’ve been having a look at this to get the binary data, which works fine:

Docs: https://westus.dev.cognitive.microsoft.com/docs/services/form-recognizer-api-v2-1-preview-3/operations/5ed8c9843c2794cbb1a96291

I have also removed the headers and used Header Auth for the one “Ocp-Apim-Subscription-Key” which is required, Host and Content-Type (required) seem to generate automatically, though I’m not sure.

The Workflow appears to partly complete, I added the Query Params to the URL, and Options:

  • MIME Type:application/pdf
  • Full Response:true (see below)

One thing, that is slightly odd, I get no response, the response to this POST (which is a file id on Azure) is supposed to be in the header, how can I get that data?

Lastly, and I appreciate this is now a different issue, when looking at Executions, I get this alert after clicking the cancel button:

Problem stopping execution
There was a problem stopping the execuction:
this.activeExecutions[executionId].workflowExecution.cancel is not a function

Thank you for your help.