Sample code for 30+ languages & platforms
C

SharePoint -- Download a Text File into a String Variable

See more SharePoint Examples

Demonstrates how to download a text file from SharePoint into a string variable.

Chilkat C Downloads

C
#include <C_CkHttp.h>
#include <C_CkBinData.h>
#include <C_CkStringBuilder.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkHttp http;
    const char *url;
    const char *strCsv;
    HCkBinData bd;
    HCkStringBuilder sb;

    success = FALSE;

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

    // -------------------------------------------------------------------------
    // The following comments apply to SharePoint Windows classic authentication.
    // -------------------------------------------------------------------------
    // For example, imagine our SharePoint endpoint is https://xyzoffice.mycompany.com/
    // The SHAREPOINT_NTLM_DOMAIN would be "mycompany.com"
    // The SHAREPOINT_HTTPS_DOMAIN would be "xyzoffice.mycompany.com"
    // Also, the SHAREPOINT_USERNAME would be just the name, not a full email address.
    // for example, "chilkat" instead of "chilkat@mycompany.com"

    http = CkHttp_Create();

    // If SharePoint Windows classic authentication is used, then set the 
    // Login, Password, LoginDomain, and NtlmAuth properties.
    CkHttp_putLogin(http,"SHAREPOINT_USERNAME");
    CkHttp_putPassword(http,"SHAREPOINT_PASSWORD");
    CkHttp_putLoginDomain(http,"SHAREPOINT_NTLM_DOMAIN");
    CkHttp_putNtlmAuth(http,TRUE);

    // -------------------------------------------------------------------------
    // The more common case is to use SharePoint Online authentication (via the SPOIDCRL cookie).
    // If so, do not set Login, Password, LoginDomain, and NtlmAuth, and instead
    // establish the cookie as shown at SharePoint Online Authentication
    // -------------------------------------------------------------------------

    // This example downloads a CSV file that is utf-8 and contains Japanese characters.

    url = "https://SHAREPOINT_HTTPS_DOMAIN/_api/web/GetFileByServerRelativeUrl('/Documents/ChilkatTest/japanese.csv')/$value";

    CkHttp_putAcceptCharset(http,"utf-8");

    strCsv = CkHttp_quickGetStr(http,url);
    if (CkHttp_getLastMethodSuccess(http) != TRUE) {
        printf("%s\n",CkHttp_lastErrorText(http));
        CkHttp_Dispose(http);
        return;
    }

    // The CSV file is contained in strCsv.
    printf("CSV:\n");
    printf("%s\n",strCsv);

    // Note: The HTTP response hopefully indicates the charset of the response,
    // and Chilkat should receive the string correctly.  If the response sent by
    // SharePoint does not indicate a charset, or indicates an incorrect charset,
    // then we can instead download the text file as binary data and interpret the
    // bytes ourselves correctly.  For example:  

    bd = CkBinData_Create();
    success = CkHttp_QuickGetBd(http,url,bd);
    if (success != TRUE) {
        printf("%s\n",CkHttp_lastErrorText(http));
        CkHttp_Dispose(http);
        CkBinData_Dispose(bd);
        return;
    }

    // Interpret the bytes correctly as utf-8
    sb = CkStringBuilder_Create();
    CkStringBuilder_AppendBd(sb,bd,"utf-8",0,0);
    printf("CSV:\n");
    printf("%s\n",CkStringBuilder_getAsString(sb));


    CkHttp_Dispose(http);
    CkBinData_Dispose(bd);
    CkStringBuilder_Dispose(sb);

    }