C
C
DVLA Vehicle Enquiry Service
See more _Miscellaneous_ Examples
Demonstrates how to make a call to the DVLA Vehicle Enquiry API to get vehicle details of a specified vehicle. It uses the vehicle registration number as input to search and provide details of the vehicle.Chilkat C Downloads
#include <C_CkHttp.h>
#include <C_CkJsonObject.h>
#include <C_CkHttpResponse.h>
#include <C_CkStringBuilder.h>
void ChilkatSample(void)
{
BOOL success;
HCkHttp http;
HCkJsonObject json;
HCkHttpResponse resp;
HCkStringBuilder sbResponseBody;
HCkJsonObject jResp;
int respStatusCode;
const char *artEndDate;
int co2Emissions;
const char *colour;
int engineCapacity;
const char *fuelType;
const char *make;
BOOL markedForExport;
const char *monthOfFirstRegistration;
const char *motStatus;
const char *registrationNumber;
int revenueWeight;
const char *taxDueDate;
const char *taxStatus;
const char *typeApproval;
const char *wheelplan;
int yearOfManufacture;
const char *euroStatus;
const char *realDrivingEmissions;
const char *dateOfLastV5CIssued;
success = FALSE;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http = CkHttp_Create();
// Implements the following CURL command:
// curl -X POST https://driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1/vehicles \
// -H "x-api-key: supplied API key" \
// -H "Accept: application/json" \
// -d '{"registrationNumber": "ABC1234"}'
// Use the following online tool to generate HTTP code from a CURL command
// Convert a cURL Command to HTTP Source Code
// Use this online tool to generate code from sample JSON:
// Generate Code to Create JSON
// The following JSON is sent in the request body.
// {
// "registrationNumber": "ABC1234"
// }
json = CkJsonObject_Create();
CkJsonObject_UpdateString(json,"registrationNumber","ABC1234");
CkHttp_SetRequestHeader(http,"Accept","application/json");
CkHttp_SetRequestHeader(http,"x-api-key","supplied API key");
resp = CkHttpResponse_Create();
success = CkHttp_HttpJson(http,"POST","https://driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1/vehicles",json,"application/json",resp);
if (success == FALSE) {
printf("%s\n",CkHttp_lastErrorText(http));
CkHttp_Dispose(http);
CkJsonObject_Dispose(json);
CkHttpResponse_Dispose(resp);
return;
}
sbResponseBody = CkStringBuilder_Create();
CkHttpResponse_GetBodySb(resp,sbResponseBody);
jResp = CkJsonObject_Create();
CkJsonObject_LoadSb(jResp,sbResponseBody);
CkJsonObject_putEmitCompact(jResp,FALSE);
printf("Response Body:\n");
printf("%s\n",CkJsonObject_emit(jResp));
respStatusCode = CkHttpResponse_getStatusCode(resp);
printf("Response Status Code = %d\n",respStatusCode);
if (respStatusCode >= 400) {
printf("Response Header:\n");
printf("%s\n",CkHttpResponse_header(resp));
printf("Failed.\n");
CkHttp_Dispose(http);
CkJsonObject_Dispose(json);
CkHttpResponse_Dispose(resp);
CkStringBuilder_Dispose(sbResponseBody);
CkJsonObject_Dispose(jResp);
return;
}
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "artEndDate": "2025-02-28",
// "co2Emissions": 135,
// "colour": "BLUE",
// "engineCapacity": 2494,
// "fuelType": "PETROL",
// "make": "ROVER",
// "markedForExport": false,
// "monthOfFirstRegistration": "2004-12",
// "motStatus": "No details held by DVLA",
// "registrationNumber": "ABC1234",
// "revenueWeight": 1640,
// "taxDueDate": "2007-01-01",
// "taxStatus": "Untaxed",
// "typeApproval": "N1",
// "wheelplan": "NON STANDARD",
// "yearOfManufacture": 2004,
// "euroStatus": "EURO 6 AD",
// "realDrivingEmissions": "1",
// "dateOfLastV5CIssued": "2016-12-25"
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
// Chilkat functions returning "const char *" return a pointer to temporary internal memory owned and managed by Chilkat.
// See this example explaining how this memory should be used: const char * functions.
artEndDate = CkJsonObject_stringOf(jResp,"artEndDate");
co2Emissions = CkJsonObject_IntOf(jResp,"co2Emissions");
colour = CkJsonObject_stringOf(jResp,"colour");
engineCapacity = CkJsonObject_IntOf(jResp,"engineCapacity");
fuelType = CkJsonObject_stringOf(jResp,"fuelType");
make = CkJsonObject_stringOf(jResp,"make");
markedForExport = CkJsonObject_BoolOf(jResp,"markedForExport");
monthOfFirstRegistration = CkJsonObject_stringOf(jResp,"monthOfFirstRegistration");
motStatus = CkJsonObject_stringOf(jResp,"motStatus");
registrationNumber = CkJsonObject_stringOf(jResp,"registrationNumber");
revenueWeight = CkJsonObject_IntOf(jResp,"revenueWeight");
taxDueDate = CkJsonObject_stringOf(jResp,"taxDueDate");
taxStatus = CkJsonObject_stringOf(jResp,"taxStatus");
typeApproval = CkJsonObject_stringOf(jResp,"typeApproval");
wheelplan = CkJsonObject_stringOf(jResp,"wheelplan");
yearOfManufacture = CkJsonObject_IntOf(jResp,"yearOfManufacture");
euroStatus = CkJsonObject_stringOf(jResp,"euroStatus");
realDrivingEmissions = CkJsonObject_stringOf(jResp,"realDrivingEmissions");
dateOfLastV5CIssued = CkJsonObject_stringOf(jResp,"dateOfLastV5CIssued");
CkHttp_Dispose(http);
CkJsonObject_Dispose(json);
CkHttpResponse_Dispose(resp);
CkStringBuilder_Dispose(sbResponseBody);
CkJsonObject_Dispose(jResp);
}