Skip to content

Post method is not able to properly download a Stream #356

@Irene350

Description

@Irene350

Hi I'm not sure if this is an issue or I'm doing something wrong.
I'm trying to call an external API to download a PDF file that I will later encode into a base64 string.

I used .post from RESTDataSource class.
But the string I receive is not correct.

I tried the same using axios and everything is perfectly working.
This is the working code:

const response = await axios({
        method: "post",
        url: `${this.baseURL}/storefrontapi/hot/orders/${orderId}/export/pdf`,
        headers: {
          Accept: "application/json-patch+json, */*",
          authorization: `Bearer ${this.context.token}`,
          "Content-Type": "application/pdf",
        },
        responseType: "arraybuffer", // Ensure binary data is handled correctly
      })

This is the not working call using RESTDataSource method.

const response = await this.post(`storefrontapi/hot/orders/${orderId}/export/pdf`, {
        headers: {
          Accept: "application/json-patch+json, */*",
          authorization: `Bearer ${this.context.token}`,
          "Content-Type": "application/pdf",
        },
      })

I can't use responseType here because is not supported, I didn't find any way to pass it to the post function.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions