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
(Perl) UK Vehicle Data VRM LookupDemonstrates how to query the UK Vehicle Data VRM online API's. (See https://ukvehicledata.co.uk/)
use chilkat(); # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $rest = chilkat::CkRest->new(); # Connect using TLS. $bAutoReconnect = 1; $success = $rest->Connect("uk1.ukvehicledata.co.uk",443,1,$bAutoReconnect); if ($success != 1) { print $rest->lastErrorText() . "\r\n"; exit; } # 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. $jsonResponseStr = $rest->fullRequestNoBody("GET","/api/datapackage/vehicledata"); if ($rest->get_LastMethodSuccess() != 1) { print $rest->lastErrorText() . "\r\n"; exit; } if ($rest->get_ResponseStatusCode() != 200) { print "Response Status Code = " . $rest->get_ResponseStatusCode() . "\r\n"; print $jsonResponseStr . "\r\n"; exit; } $json = chilkat::CkJsonObject->new(); $json->Load($jsonResponseStr); $json->put_EmitCompact(0); # Show the JSON response. print $json->emit() . "\r\n"; # A sample vehicledata response will be as shown below. # To get a few bits of data from the response: print "RequestGuid: " . $json->stringOf("RequestGuid") . "\r\n"; print "EngineNumber: " . $json->stringOf("DataItems.EngineNumber") . "\r\n"; print "Vrm: " . $json->stringOf("DataKeys.Vrm") . "\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() != 1) { print $rest->lastErrorText() . "\r\n"; exit; } if ($rest->get_ResponseStatusCode() != 200) { print "Response Status Code = " . $rest->get_ResponseStatusCode() . "\r\n"; print $jsonResponseStr . "\r\n"; exit; } $json->Load($jsonResponseStr); # Show the JSON response containing battery data. print $json->emit() . "\r\n"; # To get a few pieces of information out of the response... $numBatteries = $json->SizeOfArray("DataItems.BatteryList"); $i = 0; while (($i < $numBatteries)) { $json->put_I($i); print "---- Battery " . $i . ":" . "\r\n"; print " Type = " . $json->stringOf("DataItems.BatteryList[I].Type") . "\r\n"; print " LayoutImage = " . $json->stringOf("DataItems.BatteryList[I].LayoutImage") . "\r\n"; print " TerminalCode = " . $json->stringOf("DataItems.BatteryList[I].TerminalCode") . "\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" # } # } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.