Sample code for 30+ languages & platforms
Visual FoxPro

AzureWebsites OAuth2 Password Flow

See more OAuth2 Examples

Demonstrates how to do OAuth 2.0 password flow for azurewebsites.net.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loHttp
LOCAL loReq
LOCAL lcTokenEndpoint
LOCAL loResp
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode
LOCAL loSbXml
LOCAL lcDestUrl

lnSuccess = 0

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

loHttp = CreateObject('Chilkat.Http')

loReq = CreateObject('Chilkat.HttpRequest')
loReq.HttpVerb = "POST"
loReq.Path = "/token"
loReq.ContentType = "application/x-www-form-urlencoded"
loReq.AddParam("grant_type","password")
loReq.AddParam("username","your_username")
loReq.AddParam("password","your_password")

lcTokenEndpoint = "https://your_api.azurewebsites.net/token"

loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpReq(lcTokenEndpoint,loReq,loResp)
IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loReq
    RELEASE loResp
    CANCEL
ENDIF

loSbResponseBody = CreateObject('Chilkat.StringBuilder')
loResp.GetBodySb(loSbResponseBody)
loJResp = CreateObject('Chilkat.JsonObject')
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = 0

? "Response Body:"
? loJResp.Emit()

* Sample JSON response:

* {
*   "access_token": "NQGHn ... xTS",
*   "token_type": "bearer",
*   "expires_in": 1209599,
*   "userName": "your_username",
*   ".issued": "Mon, 27 Apr 2020 23:49:35 GMT",
*   ".expires": "Mon, 11 May 2020 23:49:35 GMT"
* }

lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
    ? "Response Header:"
    ? loResp.Header
    ? "Failed."
    RELEASE loHttp
    RELEASE loReq
    RELEASE loResp
    RELEASE loSbResponseBody
    RELEASE loJResp
    CANCEL
ENDIF

* ----------------------------------
* Use the OAuth2 token in a request.
* For example...

loSbXml = CreateObject('Chilkat.StringBuilder')
lnSuccess = loSbXml.LoadFile("c:/someDir/someXmlFile.xml","utf-8")
IF (lnSuccess = 0) THEN
    ? "Failed to load the XML file."
    RELEASE loHttp
    RELEASE loReq
    RELEASE loResp
    RELEASE loSbResponseBody
    RELEASE loJResp
    RELEASE loSbXml
    CANCEL
ENDIF

* Get the OAuth2 token and use it for authentication
loHttp.AuthToken = loJResp.StringOf("token")

lcDestUrl = "https://your_api.azurewebsites.net/destinationUrl"
lnSuccess = loHttp.HttpSb("POST",lcDestUrl,loSbXml,"utf-8","application/xml",loResp)
IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loReq
    RELEASE loResp
    RELEASE loSbResponseBody
    RELEASE loJResp
    RELEASE loSbXml
    CANCEL
ENDIF

lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
    ? "Response Header:"
    ? loResp.Header
    ? "Failed."
    RELEASE loHttp
    RELEASE loReq
    RELEASE loResp
    RELEASE loSbResponseBody
    RELEASE loJResp
    RELEASE loSbXml
    CANCEL
ENDIF

* Examine the response body
? loResp.BodyStr

RELEASE loHttp
RELEASE loReq
RELEASE loResp
RELEASE loSbResponseBody
RELEASE loJResp
RELEASE loSbXml