Sample code for 30+ languages & platforms
Java

UPS Address Validation (City, State, Zip)

See more HTTP Misc Examples

Demonstrates making a call to the UPS address validation REST API.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Http;
import com.chilkatsoft.chilkat2.HttpResponse;
import com.chilkatsoft.chilkat2.JsonObject;
import com.chilkatsoft.chilkat2.StringBuilder;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example requires the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        Http http = new Http();

        // This is the testing endpoint for address validation:
        String url = "https://wwwcie.ups.com/rest/AV";

        // Send an HTTP request with the following JSON body:

        // {
        //   "AccessRequest": {
        //     "AccessLicenseNumber": "Your Access License Number",
        //     "UserId": "Your Username",
        //     "Password": "Your Password"
        //   },
        //   "AddressValidationRequest": {
        //     "Request": {
        //       "TransactionReference": {
        //         "CustomerContext": "Your Customer Context"
        //       },
        //       "RequestAction": "AV"
        //     },
        //     "Address": {
        //       "City": "ALPHARETTA",
        //       "StateProvinceCode": "GA",
        //       "PostalCode": "30005"
        //     }
        //   }
        // }

        // Build the above JSON.
        JsonObject json = new JsonObject();
        json.updateString("AccessRequest.AccessLicenseNumber", "UPS_ACCESS_KEY");
        json.updateString("AccessRequest.UserId", "UPS_USERNAME");
        json.updateString("AccessRequest.Password", "UPS_PASSWORD");
        json.updateString("AddressValidationRequest.Request.TransactionReference.CustomerContext", "Your Customer Context");
        json.updateString("AddressValidationRequest.Request.RequestAction", "AV");
        json.updateString("AddressValidationRequest.Address.City", "ALPHARETTA");
        // We're making an intentional mistake here by passing CA instead of GA.
        json.updateString("AddressValidationRequest.Address.StateProvinceCode", "CA");
        json.updateString("AddressValidationRequest.Address.PostalCode", "30005");

        StringBuilder sb = new StringBuilder();
        HttpResponse resp = new HttpResponse();
        try {
            http.httpJson("POST", url, json, "application/json", resp);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        System.out.println("status = " + resp.getStatusCode());

        // A 200 response status indicate success.
        if (resp.getStatusCode() != 200) {
            System.out.println(resp.getBodyStr());
            System.out.println("Failed.");
            return;
        }

        json.load(resp.getBodyStr());
        json.setEmitCompact(false);
        System.out.println(json.emit());

        // A successful exact response looks like this:

        // {
        //   "AddressValidationResponse": {
        //     "Response": {
        //       "TransactionReference": {
        //         "CustomerContext": "Your Customer Context"
        //       },
        //       "ResponseStatusCode": "1",
        //       "ResponseStatusDescription": "Success"
        //     },
        //     "AddressValidationResult": {
        //       "Rank": "1",
        //       "Quality": "1.0",
        //       "Address": {
        //         "City": "ALPHARETTA",
        //         "StateProvinceCode": "GA"
        //       },
        //       "PostalCodeLowEnd": "30005",
        //       "PostalCodeHighEnd": "30005"
        //     }
        //   }
        // }
        //

        // A successful response that was not an exact match provides an array of closest matches, like this:

        // {
        //   "AddressValidationResponse": {
        //     "Response": {
        //       "TransactionReference": {
        //         "CustomerContext": "Your Customer Context"
        //         "Quality": "0.9875",
        //         "Address": {
        //       },
        //       "ResponseStatusCode": "1",
        //       "ResponseStatusDescription": "Success"
        //     },
        //     "AddressValidationResult": [
        //       {
        //         "Rank": "1",
        //           "City": "ALPHARETTA",
        //           "StateProvinceCode": "GA"
        //         },
        //         "PostalCodeLowEnd": "30005",
        //         "PostalCodeHighEnd": "30005"
        //       },
        //       {
        //         "Rank": "2",
        //         "Quality": "0.9750",
        //         "Address": {
        //           "City": "ALPHARETTA",
        //           "StateProvinceCode": "GA"
        //         },
        //         "PostalCodeLowEnd": "30004",
        //         "PostalCodeHighEnd": "30004"
        //       },
        //       {
        //         "Rank": "3",
        //         "Quality": "0.9750",
        //         "Address": {
        //           "City": "ALPHARETTA",
        //           "StateProvinceCode": "GA"
        //         },
        //         "PostalCodeLowEnd": "30009",
        //         "PostalCodeHighEnd": "30009"
        //       }
        //     ]
        //   }
        // }

        // Use the online tool at Generate JSON Parsing Code
        // to generate JSON parsing code.

        String customerContext = "";
        String statusCode = "";
        String statusDescription = "";
        String resultRank = "";
        String resultQuality = "";
        String city = "";
        String provinceCode = "";
        String postalCodeLowEnd = "";
        String postalCodeHighEnd = "";
        String rank = "";
        String quality = "";
        String addressCity = "";
        String addressStateProvinceCode = "";

        int numResults = json.sizeOfArray("AddressValidationResponse.AddressValidationResult");
        if (numResults < 0) {
            // Here's parse code for the above JSON exact response:
            customerContext = json.stringOf("AddressValidationResponse.Response.TransactionReference.CustomerContext");
            statusCode = json.stringOf("AddressValidationResponse.Response.ResponseStatusCode");
            statusDescription = json.stringOf("AddressValidationResponse.Response.ResponseStatusDescription");
            resultRank = json.stringOf("AddressValidationResponse.AddressValidationResult.Rank");
            resultQuality = json.stringOf("AddressValidationResponse.AddressValidationResult.Quality");
            city = json.stringOf("AddressValidationResponse.AddressValidationResult.Address.City");
            provinceCode = json.stringOf("AddressValidationResponse.AddressValidationResult.Address.StateProvinceCode");
            postalCodeLowEnd = json.stringOf("AddressValidationResponse.AddressValidationResult.PostalCodeLowEnd");
            postalCodeHighEnd = json.stringOf("AddressValidationResponse.AddressValidationResult.PostalCodeHighEnd");

            System.out.println("Exact match!");
            System.out.println("postal code: " + postalCodeLowEnd);
        } else {
            System.out.println("Non-Exact match.");

            customerContext = json.stringOf("AddressValidationResponse.Response.TransactionReference.CustomerContext");
            statusCode = json.stringOf("AddressValidationResponse.Response.ResponseStatusCode");
            statusDescription = json.stringOf("AddressValidationResponse.Response.ResponseStatusDescription");
            int i = 0;
            while (i < numResults) {
                json.setI(i);
                rank = json.stringOf("AddressValidationResponse.AddressValidationResult[i].Rank");
                System.out.println("rank: " + rank);
                quality = json.stringOf("AddressValidationResponse.AddressValidationResult[i].Quality");
                addressCity = json.stringOf("AddressValidationResponse.AddressValidationResult[i].Address.City");
                System.out.println("addressCity: " + addressCity);
                addressStateProvinceCode = json.stringOf("AddressValidationResponse.AddressValidationResult[i].Address.StateProvinceCode");
                postalCodeLowEnd = json.stringOf("AddressValidationResponse.AddressValidationResult[i].PostalCodeLowEnd");
                System.out.println("postal code: " + postalCodeLowEnd);
                postalCodeHighEnd = json.stringOf("AddressValidationResponse.AddressValidationResult[i].PostalCodeHighEnd");
                i = i + 1;
            }
        }
    }
}