Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Objective-C) Google Maps Geolocation RequestDemonstrates how make a Google Maps Geolocation REST API request.
#import <CkoRest.h> #import <CkoJsonObject.h> #import <CkoJsonArray.h> #import <NSString.h> // This example duplicates the following CURL request: // curl -d @your_filename.json -H "Content-Type: application/json" -i "https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY" // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkoRest *rest = [[CkoRest alloc] init]; // Connect to the Google API REST server. BOOL bTls = YES; int port = 443; BOOL bAutoReconnect = YES; BOOL success = [rest Connect: @"www.googleapis.com" port: [NSNumber numberWithInt: port] tls: bTls autoReconnect: bAutoReconnect]; // Add the Content-Type request header. [rest AddHeader: @"Content-Type" value: @"application/json"]; // Add your API key as a query parameter [rest AddQueryParam: @"key" value: @"YOUR_API_KEY"]; // The JSON query is contained in the body of the HTTP POST. // This is a sample query (which we'll dynamically build in this example) // { // "homeMobileCountryCode": 310, // "homeMobileNetworkCode": 260, // "radioType": "gsm", // "carrier": "T-Mobile", // "cellTowers": [ // { // "cellId": 39627456, // "locationAreaCode": 40495, // "mobileCountryCode": 310, // "mobileNetworkCode": 260, // "age": 0, // "signalStrength": -95 // } // ], // "wifiAccessPoints": [ // { // "macAddress": "01:23:45:67:89:AB", // "signalStrength": 8, // "age": 0, // "signalToNoiseRatio": -65, // "channel": 8 // }, // { // "macAddress": "01:23:45:67:89:AC", // "signalStrength": 4, // "age": 0 // } // ] // } CkoJsonObject *json = [[CkoJsonObject alloc] init]; [json AppendInt: @"homeMobileCountryCode" value: [NSNumber numberWithInt: 310]]; [json AppendInt: @"homeMobileNetworkCode" value: [NSNumber numberWithInt: 260]]; [json AppendString: @"radioType" value: @"gsm"]; [json AppendString: @"carrier" value: @"T-Mobile"]; CkoJsonArray *aCellTowers = [json AppendArray: @"cellTowers"]; [aCellTowers AddObjectAt: [NSNumber numberWithInt: 0]]; CkoJsonObject *oCellTower = [aCellTowers ObjectAt: [NSNumber numberWithInt: 0]]; [oCellTower AppendInt: @"cellId" value: [NSNumber numberWithInt: 39627456]]; [oCellTower AppendInt: @"locationAreaCode" value: [NSNumber numberWithInt: 40495]]; [oCellTower AppendInt: @"mobileCountryCode" value: [NSNumber numberWithInt: 310]]; [oCellTower AppendInt: @"mobileNetworkCode" value: [NSNumber numberWithInt: 260]]; [oCellTower AppendInt: @"age" value: [NSNumber numberWithInt: 0]]; [oCellTower AppendInt: @"signalStrength" value: [NSNumber numberWithInt: -95]]; CkoJsonArray *aWifi = [json AppendArray: @"wifiAccessPoints"]; [aWifi AddObjectAt: [NSNumber numberWithInt: 0]]; CkoJsonObject *oPoint = [aWifi ObjectAt: [NSNumber numberWithInt: 0]]; [oPoint AppendString: @"macAddress" value: @"01:23:45:67:89:AB"]; [oPoint AppendInt: @"signalStrength" value: [NSNumber numberWithInt: 8]]; [oPoint AppendInt: @"age" value: [NSNumber numberWithInt: 0]]; [oPoint AppendInt: @"signalToNoiseRatio" value: [NSNumber numberWithInt: -65]]; [oPoint AppendInt: @"channel" value: [NSNumber numberWithInt: 8]]; [aWifi AddObjectAt: [NSNumber numberWithInt: 1]]; oPoint = [aWifi ObjectAt: [NSNumber numberWithInt: 1]]; [oPoint AppendString: @"macAddress" value: @"01:23:45:67:89:AC"]; [oPoint AppendInt: @"signalStrength" value: [NSNumber numberWithInt: 4]]; [oPoint AppendInt: @"age" value: [NSNumber numberWithInt: 0]]; NSString *responseJson = [rest FullRequestString: @"POST" uriPath: @"/geolocation/v1/geolocate" bodyText: [json Emit]]; if (rest.LastMethodSuccess != YES) { NSLog(@"%@",rest.LastErrorText); return; } // When successful, the response code is 200. if ([rest.ResponseStatusCode intValue] != 200) { // Examine the request/response to see what happened. NSLog(@"%@%d",@"response status code = ",[rest.ResponseStatusCode intValue]); NSLog(@"%@%@",@"response status text = ",rest.ResponseStatusText); NSLog(@"%@%@",@"response header: ",rest.ResponseHeader); NSLog(@"%@%@",@"response JSON: ",responseJson); NSLog(@"%@",@"---"); NSLog(@"%@%@",@"LastRequestStartLine: ",rest.LastRequestStartLine); NSLog(@"%@%@",@"LastRequestHeader: ",rest.LastRequestHeader); return; } json.EmitCompact = NO; NSLog(@"%@%@",@"JSON request body: ",[json Emit]); // The JSON response should look like this: // { // "location": { // "lat": 37.4248297, // "lng": -122.07346549999998 // }, // "accuracy": 1145.0 // } NSLog(@"%@%@",@"JSON response: ",responseJson); CkoJsonObject *jsonResp = [[CkoJsonObject alloc] init]; [jsonResp Load: responseJson]; CkoJsonObject *jsonLoc = [jsonResp ObjectOf: @"location"]; // Any JSON value can be obtained as a string.. NSString *latitude = [jsonLoc StringOf: @"lat"]; NSLog(@"%@%@",@"latitude = ",latitude); NSString *longitude = [jsonLoc StringOf: @"lng"]; NSLog(@"%@%@",@"longitude = ",longitude); NSString *accuracy = [jsonResp StringOf: @"accuracy"]; NSLog(@"%@%@",@"accuracy = ",accuracy); |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.