Zig Requires Chilkat v11.0.0+
Zig
Datev - Upload File (Transfer a file to DATEV data center)
See more Datev Examples
Demonstrates how to transfer a file to the DATEV data center.Chilkat Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
const http = try chilkat.Http.init();
defer http.deinit();
// Implements the following CURL command:
// curl --request POST \
// --url "https://accounting-extf-files.api.datev.de/platform-sandbox/v3/clients/REPLACE_CLIENT-ID/extf-files/import" \
// --header "Authorization: Bearer REPLACE_BEARER_TOKEN" \
// --header "X-Datev-Client-ID: clientId" \
// --header "accept: application/json;charset=utf-8" \
// --header "content-type: application/octet-stream" \
// --header "Filename: EXTF_BS_20200101_1.csv" \
// --header "Reference-Id: Buchungsstapel_Verkäufe_2020_01_Nr_001" \
// --header "Client-Application-Version: 2.0c" \
// --data-binary "@REPLACE_BODY"
// Use the following online tool to generate HTTP code from a CURL command
// Convert a cURL Command to HTTP Source Code
const bd_request_body = try chilkat.BinData.init();
defer bd_request_body.deinit();
bd_request_body.loadFile("c:/temp/EXTF_BS_20200101_1.csv") catch {
std.debug.print("Failed to load the csv file.\n", .{});
return;
};
http.setRequestHeader("accept", "application/json;charset=utf-8");
http.setRequestHeader("X-Datev-Client-ID", "clientId");
http.setRequestHeader("Client-Application-Version", "2.0c");
http.setRequestHeader("Filename", "EXTF_BS_20200101_1.csv");
http.setRequestHeader("Reference-Id", "Buchungsstapel_Verkäufe_2020_01_Nr_001");
// Adds the "Authorization: Bearer REPLACE_BEARER_TOKEN" header.
http.setAuthToken("REPLACE_BEARER_TOKEN");
const resp = try chilkat.HttpResponse.init();
defer resp.deinit();
const url = "https://accounting-extf-files.api.datev.de/platform-sandbox/v3/clients/DATEV_USER_ID/extf-files/import";
http.httpBd("POST", url, bd_request_body, "application/octet-stream", resp) catch {
std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
return;
};
std.debug.print("{d}\n", .{resp.getStatusCode()});
std.debug.print("{s}\n", .{try resp.getBodyStr(alloc)});
}