Visual FoxPro
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
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