Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) UK Vehicle Data VRM LookupDemonstrates how to query the UK Vehicle Data VRM online API's. (See https://ukvehicledata.co.uk/)
#include <CkRest.h> #include <CkJsonObject.h> void ChilkatSample(void) { CkString strOut; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkRest rest; // Connect using TLS. bool bAutoReconnect = true; bool success = rest.Connect("uk1.ukvehicledata.co.uk",443,true,bAutoReconnect); if (success != true) { strOut.append(rest.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Replace UKVD-API-KEY with your actual API KEY, // which looks something like "abcdb1234-0abc-1235-abcf-1234c3d1abcd" rest.put_Authorization("ukvd-ipwhitelist UKVD-API-KEY"); // Replace "ABCDE" with a real VRM... rest.AddQueryParam("key_vrm","ABCDE"); // Add the Content-Type HTTP request header. // success = rest.AddHeader("Content-Type","application/json; charset=UTF-8"); // This request gets vehicle data. // See below for a request to get battery data. const char *jsonResponseStr = rest.fullRequestNoBody("GET","/api/datapackage/vehicledata"); if (rest.get_LastMethodSuccess() != true) { strOut.append(rest.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } if (rest.get_ResponseStatusCode() != 200) { strOut.append("Response Status Code = "); strOut.appendInt(rest.get_ResponseStatusCode()); strOut.append("\r\n"); strOut.append(jsonResponseStr); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } CkJsonObject json; json.Load(jsonResponseStr); json.put_EmitCompact(false); // Show the JSON response. strOut.append(json.emit()); strOut.append("\r\n"); // A sample vehicledata response will be as shown below. // To get a few bits of data from the response: strOut.append("RequestGuid: "); strOut.append(json.stringOf("RequestGuid")); strOut.append("\r\n"); strOut.append("EngineNumber: "); strOut.append(json.stringOf("DataItems.EngineNumber")); strOut.append("\r\n"); strOut.append("Vrm: "); strOut.append(json.stringOf("DataKeys.Vrm")); strOut.append("\r\n"); // { // "RequestGuid": "xxxxxxxx-cc72-4b63-xxxxxxxxxxxx", // "StatusCode": 0, // "StatusMessage": "Success", // "PackageId": "xxxxxxxx-a4bc-4a84-af22-xxxxxxxxxxxx", // "PackageVersion": 1, // "DataKeys": { // "Vrm": "ABCDE" // }, // "DataItems": { // "DriveAxle": "4x2", // "Exported": "False", // "DriverSeatPosition": "RHD", // "EngineNumber": "LN910940728622", // "Class": "Sport", // "ImportedNorthernIreland": "False", // "HistoryPreviousKeeperAcquisitionDate": "2013-01-12", // "RoadFundLicenseSixMonth": "126.50", // "EnginePowerBhp": "262", // "SpecDateRangeFrom": "1987-10-01", // "RegistrationDateUK": "1994-08-03", // "SoundLevelDriveBy": "0", // "RoadFundLicenseTwelveMonth": "235.00", // "RoadFundLicenseBand": "Not available", // "Vrm": "J5YVK", // "TrimCode": "BA", // "Derivative": "S4", // "EngineSizeCc": "2174", // "EngineCylinderCount": "4", // "HistoryLatestV5cIssueDate": "2015-05-12", // "Category": "Car", // "HistoryPreviousKeeperCount": "9", // "ConditionScrapped": "False", // "EngineValveCount": "16", // "WeightUnladen": "0", // "RoadFundLicenseRenewalDate": "2017-04-01", // "Model": "Esprit", // "SpecDateRangeTo": "2003-06-01", // "RoadFundLicenseCurrentStatus": "Tax not due", // "BuildYear": "1994", // "BuildDate": "1994-12-31", // "VinLast4": "1448", // "GearCount": "5", // "SeatCount": "2", // "Make": "Lotus", // "Vin": "SCC082910RHA61448", // "ColourChangeCount": "0", // "DriveType": "Rear Wheel Drive", // "WeightGross": "0", // "EngineCode": "N/A", // "EnginePowerKw": "193", // "SoundLevelEngineSpeed": "0", // "ConditionUnscrapped": "False", // "HistoryPreviousKeeperDisposalDate": "2014-04-26", // "EngineAlignment": "Longitudinal", // "Imported": "False", // "BodyType": "Coupe", // "EnginePosition": "Mid", // "TransmissionType": "Manual", // "WeightFullyLaden": "0", // "SoundLevelStationary": "0", // "FuelType": "Petrol", // "Colour": "YELLOW", // "EngineSizeLitre": "2.2", // "RegistrationDate": "1994-08-03", // "Co2Emissions": "000", // "WeightMaxTowingUnbraked": "0", // "HistoryCurrentKeeperAcquisitionDate": "2015-04-25", // "WeightMaxTowingBraked": "0", // "DoorCount": "2", // "EngineCylinderConfig": "Inline", // "EngineFuelDelivery": "Turbo Injection" // } // } // ----------------------------------------------------------------------------------- // Now get battery data... jsonResponseStr = rest.fullRequestNoBody("GET","/api/datapackage/batterydata"); if (rest.get_LastMethodSuccess() != true) { strOut.append(rest.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } if (rest.get_ResponseStatusCode() != 200) { strOut.append("Response Status Code = "); strOut.appendInt(rest.get_ResponseStatusCode()); strOut.append("\r\n"); strOut.append(jsonResponseStr); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } json.Load(jsonResponseStr); // Show the JSON response containing battery data. strOut.append(json.emit()); strOut.append("\r\n"); // To get a few pieces of information out of the response... int numBatteries = json.SizeOfArray("DataItems.BatteryList"); int i = 0; while ((i < numBatteries)) { json.put_I(i); strOut.append("---- Battery "); strOut.appendInt(i); strOut.append(":"); strOut.append("\r\n"); strOut.append(" Type = "); strOut.append(json.stringOf("DataItems.BatteryList[I].Type")); strOut.append("\r\n"); strOut.append(" LayoutImage = "); strOut.append(json.stringOf("DataItems.BatteryList[I].LayoutImage")); strOut.append("\r\n"); strOut.append(" TerminalCode = "); strOut.append(json.stringOf("DataItems.BatteryList[I].TerminalCode")); strOut.append("\r\n"); i = i + 1; } // The battery data looks like this: // { // "RequestGuid": "xxxxxxxx-5030-4b3d-a2ed-xxxxxxxxxxxx", // "StatusCode": 0, // "StatusMessage": "Success", // "PackageId": "xxxxxxxx-9ec2-4fd3-9247-xxxxxxxxxxxx", // "PackageVersion": 1, // "DataKeys": { // "Vrm": "ABCDE" // }, // "DataItems": { // "BatteryList": [ // { // "Type": "Primary", // "UkRef": "075", // "LayoutCode": "0", // "LayoutImage": "http://cdn.ukvehicledata.co.uk/battery/layout/0.png", // "TerminalCode": "T1", // "TerminalImage": "http://cdn.ukvehicledata.co.uk/battery/terminal/T1.png", // "HoldDownCode": "B13", // "HoldDownImage": "http://cdn.ukvehicledata.co.uk/battery/holddown/B13.png" // } // ], // "BatteryCount": "1" // } // } SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.