Sample code for 30+ languages & platforms
Visual FoxPro

Send JSON REST Request, Get JSON Response

See more REST Examples

Demonstrates sending a RESTful JSON request, and receiving a JSON response. This example will create a bucket in Google Cloud Storage (which involves sending and receiving JSON).

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loGAuth
LOCAL loRest
LOCAL lnBAutoReconnect
LOCAL loJsonReqBody
LOCAL loObjVersioning
LOCAL lcJsonResponseStr

lnSuccess = 0

* This example will create a bucket in Google Cloud Storage.

* It requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loGAuth = CreateObject('Chilkat.AuthGoogle')
* Obtain an access token as shown in one of the following examples:
* See Get Access Token using a Service Account JSON Key
* See Get Access Token using a P12 File

loRest = CreateObject('Chilkat.Rest')

* Connect using TLS.
lnBAutoReconnect = 1
lnSuccess = loRest.Connect("www.googleapis.com",443,1,lnBAutoReconnect)

* Provide the authentication credentials (i.e. the access key)
lnSuccess = loRest.SetAuthGoogle(loGAuth)

* Build the JSON request body for creating a bucket.
* The only required property is the "name", but we'll add more
* to make a better example..
loJsonReqBody = CreateObject('Chilkat.JsonObject')
loJsonReqBody.AppendString("name","chilkat-bucket-c")
loJsonReqBody.AppendString("kind","storage#bucket")
loJsonReqBody.AppendString("location","US")

loObjVersioning = CreateObject('Chilkat.JsonObject')
loJsonReqBody.AppendObject2("versioning",loObjVersioning)
loObjVersioning.AppendBool("enabled",1)

* Show the HTTP request body we'll be sending.
? loJsonReqBody.Emit()

* Add the required query parameter.
* See https://cloud.google.com/storage/docs/json_api/v1/buckets/insert
lnSuccess = loRest.AddQueryParam("project","chilkattest-1050")

* Add the Content-Type HTTP request header.
lnSuccess = loRest.AddHeader("Content-Type","application/json; charset=UTF-8")

lcJsonResponseStr = loRest.FullRequestString("POST","/storage/v1/b",loJsonReqBody.Emit())
IF (loRest.LastMethodSuccess = 0) THEN
    ? loRest.LastErrorText
    RELEASE loGAuth
    RELEASE loRest
    RELEASE loJsonReqBody
    RELEASE loObjVersioning
    CANCEL
ENDIF

* Show the JSON response.  (See below for a sample JSON response.)
? "Json Response: " + lcJsonResponseStr

* {
*  "kind": "storage#bucket",
*  "id": "chilkat-bucket-c",
*  "selfLink": "https://www.googleapis.com/storage/v1/b/chilkat-bucket-c",
*  "projectNumber": "999992999999",
*  "name": "chilkat-bucket-c",
*  "timeCreated": "2016-04-29T21:08:10.451Z",
*  "updated": "2016-04-29T21:08:10.451Z",
*  "metageneration": "1",
*  "owner": {
*   "entity": "project-owners-999992999999"
*  },
*  "location": "US",
*  "versioning": {
*   "enabled": true
*  },
*  "storageClass": "STANDARD",
*  "etag": "CAE="
* }
* 

RELEASE loGAuth
RELEASE loRest
RELEASE loJsonReqBody
RELEASE loObjVersioning