Go
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
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()