Sample code for 30+ languages & platforms
Objective-C

REST POST JSON using Gzip Content Encoding

See more REST Examples

Demonstrates how to send a JSON POST using the gzip Content-Encoding.

Chilkat Objective-C Downloads

Objective-C
#import <CkoJsonObject.h>
#import <CkoRest.h>
#import <CkoStringBuilder.h>

BOOL success = NO;

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

// Use the online tool at https://tools.chilkat.io/Default.cshtml
// to generate the JSON code that creates this JSON:

// {
//     "lists": [
//         {
//             "id": "1511199999"
//         }
//     ],
//     "confirmed": false,
//     "email_addresses": [
//         {
//             "email_address": "support@chilkatsoft.com"
//         }
//     ],
//     "first_name": "Matt",
//     "last_name": "Smith"
// }
// 

CkoJsonObject *json = [[CkoJsonObject alloc] init];
[json UpdateString: @"lists[0].id" value: @"1511199999"];
[json UpdateBool: @"confirmed" value: NO];
[json UpdateString: @"email_addresses[0].email_address" value: @"support@chilkatsoft.com"];
[json UpdateString: @"first_name" value: @"Matt"];
[json UpdateString: @"last_name" value: @"Smith"];

CkoRest *rest = [[CkoRest alloc] init];

success = [rest Connect: @"api.constantcontact.com" port: [NSNumber numberWithInt: 443] tls: YES autoReconnect: YES];
if (success != YES) {
    NSLog(@"%@",rest.LastErrorText);
    return;
}

[rest AddHeader: @"Content-Type" value: @"application/json"];
[rest AddHeader: @"Authorization" value: @"Bearer xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"];

// Tell the server you'll accept only an application/json response.
[rest AddHeader: @"Accept" value: @"application/json"];

// Indicate that we'll be sending the request body gzipped.
[rest AddHeader: @"Content-Encoding" value: @"gzip"];

CkoStringBuilder *sbReq = [[CkoStringBuilder alloc] init];
[json EmitSb: sbReq];

// Send the POST.
CkoStringBuilder *sbResp = [[CkoStringBuilder alloc] init];
success = [rest FullRequestSb: @"POST" uriPath: @"/v2/contacts?action_by=ACTION_BY_VISITOR&api_key=xxxxxxx" requestBody: sbReq responseBody: sbResp];
if (success != YES) {
    NSLog(@"%@",rest.LastErrorText);
    return;
}

NSLog(@"%@",@"Response body:");
NSLog(@"%@",[sbResp GetAsString]);

if ([rest.ResponseStatusCode intValue] != 200) {
    NSLog(@"%@%d",@"Received error response code: ",[rest.ResponseStatusCode intValue]);
    return;
}

CkoJsonObject *jsonResp = [[CkoJsonObject alloc] init];
[jsonResp LoadSb: sbResp];

// Use the online tool at https://tools.chilkat.io/jsonParse.cshtml
// to generate the JSON code that parses the JSON response..