Search code examples
gogo-gin

How to upload file which is response of third party API


I am new to Go Programming. I need to upload a file which I am getting from a third party API.

I am getting response as a PDF file from third party API. Now I want to upload this PDF file to a folder. I am not understanding how I can upload that PDF file and not getting any reference.

url := "https://api.xyz.com/v3/files/fcc280cf620204d4bb5dbd6a8cbbbb8fea1a20fc"
client := &http.Client{}
req, err := http.NewRequest("GET", url, nil)
if err != nil {
    fmt.Println("Failed")
}
req.Header.Set("Content-Type", "application/json")
req.SetBasicAuth("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "")
resp, err := client.Do(req)
if err != nil {
    fmt.Println("ERROR")
}
fmt.Println(resp) // here I am getting pdf file
defer resp.Body.Close()

Please suggest me some reference or some sample code. I am working on this since last few days to complete this task.


Solution

  • It's pretty simple. First, create and open a file using os.Create.

    out, err := os.Create("filename.pdf")
    if err != nil {
        return err
    }
    defer out.Close()
    

    Next, use io.Copy() to download the content.

    _, err = io.Copy(out, resp.Body)
    

    You can take a look at this for reference.