Sample code for 30+ languages & platforms
Go

Explaining the Rest ClearResponseBodyStream Method

See more Azure Cloud Storage Examples

The ClearResponseBodyStream method would be needed if your applicaiton called SetResponseBodyStream to send the response to a stream for one request, but then wants to subsequently do something else. The application must call ClearResponseBodyStream to no longer send responses to the stream.

Chilkat Go Downloads

Go
    success := false

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    rest := chilkat.NewRest()

    // Connect to the web server
    bTls := true
    port := 443
    bAutoReconnect := true
    success = rest.Connect("www.chilkatsoft.com",port,bTls,bAutoReconnect)
    if success != true {
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        return
    }

    // Setup a file stream for the download
    fileStream := chilkat.NewStream()
    fileStream.SetSinkFile("qa_output/starfish.jpg")

    // Indicate that the call to FullRequestNoBody should send the response body
    // to fileStream if the response status code is 200.
    // If a non-success response status code is received, then nothing
    // is streamed to the output file and the error response is returned by FullRequestNoBody.
    expectedStatus := 200
    rest.SetResponseBodyStream(expectedStatus,true,fileStream)

    responseStr := rest.FullRequestNoBody("GET","/images/starfish.jpg")
    if rest.LastMethodSuccess() == false {
        // Examine the request/response to see what happened.
        fmt.Println("response status code = ", rest.ResponseStatusCode())
        fmt.Println("response status text = ", rest.ResponseStatusText())
        fmt.Println("response header: ", rest.ResponseHeader())
        fmt.Println("response body (if any): ", *responseStr)
        fmt.Println("---")
        fmt.Println("LastRequestStartLine: ", rest.LastRequestStartLine())
        fmt.Println("LastRequestHeader: ", rest.LastRequestHeader())
        rest.DisposeRest()
        fileStream.DisposeStream()
        return
    }

    fmt.Println("downloaded starfish.jpg")

    // Clear the response body stream previously set in the call to SetResponseBodyStream.
    rest.ClearResponseBodyStream()

    // Download something else, but this time send the response body to bd.
    bd := chilkat.NewBinData()
    success = rest.FullRequestNoBodyBd("GET","/images/penguins.jpg",bd)
    if success == false {
        // Examine the request/response to see what happened.
        fmt.Println("response status code = ", rest.ResponseStatusCode())
        fmt.Println("response status text = ", rest.ResponseStatusText())
        fmt.Println("response header: ", rest.ResponseHeader())
        fmt.Println("response body (if any): ", *bd.GetString("utf-8"))
        fmt.Println("---")
        fmt.Println("LastRequestStartLine: ", rest.LastRequestStartLine())
        fmt.Println("LastRequestHeader: ", rest.LastRequestHeader())
        rest.DisposeRest()
        fileStream.DisposeStream()
        bd.DisposeBinData()
        return
    }

    // Save the contents of bd to a file.
    success = bd.WriteFile("qa_output/penguins.jpg")

    fmt.Println("Success: ", success)

    rest.DisposeRest()
    fileStream.DisposeStream()
    bd.DisposeBinData()