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
(Visual FoxPro) UK Vehicle Data VRM LookupDemonstrates how to query the UK Vehicle Data VRM online API's. (See https://ukvehicledata.co.uk/)
LOCAL loRest LOCAL lnBAutoReconnect LOCAL lnSuccess LOCAL lcJsonResponseStr LOCAL loJson LOCAL lnNumBatteries LOCAL i * This example requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Rest') loRest = CreateObject('Chilkat.Rest') * Connect using TLS. lnBAutoReconnect = 1 lnSuccess = loRest.Connect("uk1.ukvehicledata.co.uk",443,1,lnBAutoReconnect) IF (lnSuccess <> 1) THEN ? loRest.LastErrorText RELEASE loRest CANCEL ENDIF * Replace UKVD-API-KEY with your actual API KEY, * which looks something like "abcdb1234-0abc-1235-abcf-1234c3d1abcd" loRest.Authorization = "ukvd-ipwhitelist UKVD-API-KEY" * Replace "ABCDE" with a real VRM... loRest.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. lcJsonResponseStr = loRest.FullRequestNoBody("GET","/api/datapackage/vehicledata") IF (loRest.LastMethodSuccess <> 1) THEN ? loRest.LastErrorText RELEASE loRest CANCEL ENDIF IF (loRest.ResponseStatusCode <> 200) THEN ? "Response Status Code = " + STR(loRest.ResponseStatusCode) ? lcJsonResponseStr RELEASE loRest CANCEL ENDIF * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJson = CreateObject('Chilkat.JsonObject') loJson.Load(lcJsonResponseStr) loJson.EmitCompact = 0 * Show the JSON response. ? loJson.Emit() * A sample vehicledata response will be as shown below. * To get a few bits of data from the response: ? "RequestGuid: " + loJson.StringOf("RequestGuid") ? "EngineNumber: " + loJson.StringOf("DataItems.EngineNumber") ? "Vrm: " + loJson.StringOf("DataKeys.Vrm") * { * "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... lcJsonResponseStr = loRest.FullRequestNoBody("GET","/api/datapackage/batterydata") IF (loRest.LastMethodSuccess <> 1) THEN ? loRest.LastErrorText RELEASE loRest RELEASE loJson CANCEL ENDIF IF (loRest.ResponseStatusCode <> 200) THEN ? "Response Status Code = " + STR(loRest.ResponseStatusCode) ? lcJsonResponseStr RELEASE loRest RELEASE loJson CANCEL ENDIF loJson.Load(lcJsonResponseStr) * Show the JSON response containing battery data. ? loJson.Emit() * To get a few pieces of information out of the response... lnNumBatteries = loJson.SizeOfArray("DataItems.BatteryList") i = 0 DO WHILE (i < lnNumBatteries) loJson.I = i ? "---- Battery " + STR(i) + ":" ? " Type = " + loJson.StringOf("DataItems.BatteryList[I].Type") ? " LayoutImage = " + loJson.StringOf("DataItems.BatteryList[I].LayoutImage") ? " TerminalCode = " + loJson.StringOf("DataItems.BatteryList[I].TerminalCode") i = i + 1 ENDDO * 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" * } * } RELEASE loRest RELEASE loJson |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.