Sample code for 30+ languages & platforms
Go

Example: Http.DownloadAppend method

Demonstrates the DownloadAppend method.

Chilkat Go Downloads

Go
    success := false

    success = false

    targetPath := "c:/temp/qa_output/download.txt"

    http := chilkat.NewHttp()
    http.SetKeepResponseBody(true)

    // Assume the target file in the local filesystem does not yet exist.
    success = http.DownloadAppend("https://chilkatsoft.com/testData/helloWorld.txt",targetPath)
    statusCode := http.LastStatus()
    if statusCode == 0 {
        // Unable to either send the request or get the response.
        fmt.Println(http.LastErrorText())
        http.DisposeHttp()
        return
    }

    // Should be 200.
    fmt.Println("Response status code: ", statusCode)

    // Examine the contents of the file.
    sb := chilkat.NewStringBuilder()
    sb.LoadFile(targetPath,"utf-8")
    fmt.Println(*sb.GetAsString())

    // Output: 
    // Response status code: 200
    // Hello World!

    // Download another text file and append to the target file.
    success = http.DownloadAppend("https://chilkatsoft.com/testData/this_is_a_test.txt",targetPath)
    statusCode = http.LastStatus()
    if statusCode == 0 {
        // Unable to either send the request or get the response.
        fmt.Println(http.LastErrorText())
        http.DisposeHttp()
        sb.DisposeStringBuilder()
        return
    }

    // Should be 200.
    fmt.Println("Response status code: ", statusCode)

    // Examine the contents of the file.
    sb.LoadFile(targetPath,"utf-8")
    fmt.Println(*sb.GetAsString())

    // Output:
    // Response status code: 200
    // Hello World!This is a Test.

    // Delete the local target file.
    fac := chilkat.NewFileAccess()
    fac.FileDelete(targetPath)

    // Try to download a file that does not exist:
    success = http.DownloadAppend("https://chilkatsoft.com/testData/does_not_exist.txt",targetPath)
    statusCode = http.LastStatus()
    if statusCode == 0 {
        // Unable to either send the request or get the response.
        fmt.Println(http.LastErrorText())
    } else {
        // We got a response, and we already know it wasn't a 200 success response.
        // It should be a 404 not found.
        fmt.Println("Response status code: ", statusCode)
        // Examine the response body.
        fmt.Println("Response body:")
        fmt.Println(http.LastResponseBody())
    }


    http.DisposeHttp()
    sb.DisposeStringBuilder()
    fac.DisposeFileAccess()