Rust
Rust
Xero Get File Content (Files API)
Demonstrates how to download the content of a Xero file.Note: This example requires Chilkat v9.5.0.64 or greater.
Chilkat Rust Downloads
// Note: Requires Chilkat v9.5.0.64 or greater.
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let rest = chilkat::Rest::new();
// Before sending REST API calls, the REST object needs to be
// initialized for OAuth1.
// See Xero 2-Legged OAuth1 Setup for sample code.
// Assuming the REST object's OAuth1 authenticator is setup, and the initial
// connection was made, we may now send REST HTTP requests..
// ------------------------------------------------------------------------------
let file_id = "f042e9a3-a31d-4595-b8b3-6030ea6084bb".to_string();
let sb_path = chilkat::StringBuilder::new();
let _ = sb_path.append("/files.xro/1.0/Files/{FileId}/Content");
let num_replaced = sb_path.replace("{FileId}", &file_id);
let jpg_data = chilkat::BinData::new();
if rest.full_request_no_body_bd("GET", &sb_path.get_as_string().unwrap_or_default(), &jpg_data).is_err() {
println!("{}", rest.last_error_text());
return;
}
// A 200 response is expected for actual success.
// If we don't get a 200 response, then the response body was not actually
// the file data, but it was text containing error information.
if rest.response_status_code() != 200 {
let sb_error_text = chilkat::StringBuilder::new();
let _ = sb_error_text.append_bd(&jpg_data, "utf-8", 0, 0);
println!("{}", sb_error_text.get_as_string().unwrap_or_default());
println!("-- Failed.");
return;
}
// Save to a local file.
if jpg_data.write_file("qa_output/xero_penguins.jpg").is_err() {
println!("Failed to save to local file.");
}
println!("Xero Get File was Successful.");