Visual FoxPro
Visual FoxPro
REST URL Encode Path Parts and Query Params
See more REST Examples
When passing a path to a Chilkat REST function, the path parts and query params should be URL encoded. This example explains..Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loRest
LOCAL lnBTls
LOCAL lnPort
LOCAL lnBAutoReconnect
LOCAL loAuthAws
LOCAL lcPath
LOCAL loSbPath
LOCAL lcResponseJson
lnSuccess = 0
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
* This example demonstrates how to URL encode the path passed to a REST function.
* It is demonstrated with an Amazon SP API GET request to get details about a listings item for a selling partner.
* See https://developer-docs.amazon.com/sp-api/docs/listings-items-api-v2021-08-01-reference#getlistingsitem
loRest = CreateObject('Chilkat.Rest')
* Connect to the REST server.
lnBTls = 1
lnPort = 443
lnBAutoReconnect = 1
lnSuccess = loRest.Connect("sellingpartnerapi-eu.amazon.com",lnPort,lnBTls,lnBAutoReconnect)
loRest.ClearAllQueryParams()
loRest.AddQueryParam("marketplaceids","XYZABC123")
loRest.AddQueryParam("includedData","offers")
loRest.AddHeader("x-amz-access-token","YOUR_ACCESS_TOKEN")
loAuthAws = CreateObject('Chilkat.AuthAws')
loAuthAws.AccessKey = "YOUR_AWS_APP_ID"
loAuthAws.SecretKey = "YOUR_AWS_APP_SECRET_KEY"
loAuthAws.Region = "eu-west-1"
loAuthAws.ServiceName = "execute-api"
loRest.SetAuthAws(loAuthAws)
* The path that is passed to FullRequestNobBody
* Here's a sample path that is not yet URL encoded.
lcPath = "/listings/2022-07-01/items/ABCDEFGHIJ/100x100_28g_LANCETS(BOXED)"
* The path passed to FullRequestNoBody needs to have the parts URL-encoded.
* The "/" chars are not URL encoded, but the individual path parts should be URL encoded.
* For example: /listings/2022-07-01/items/ABCDEFGHIJ/100x100_28g_LANCETS%28BOXED%29
* In this case, we'll prepare the path like this:
loSbPath = CreateObject('Chilkat.StringBuilder')
loSbPath.Append("100x100_28g_LANCETS(BOXED)")
* URL encode the contents of the sbPath.
loSbPath.Encode("url","utf-8")
* Prepend the remaining which does not need to be URL encoded.
loSbPath.Prepend("/listings/2022-07-01/items/ABCDEFGHIJ/")
? "URL encoded path: " + loSbPath.GetAsString()
lcResponseJson = loRest.FullRequestNoBody("GET",loSbPath.GetAsString())
IF (loRest.LastMethodSuccess <> 1) THEN
? loRest.LastErrorText
RELEASE loRest
RELEASE loAuthAws
RELEASE loSbPath
CANCEL
ENDIF
? lcResponseJson
? "----"
RELEASE loRest
RELEASE loAuthAws
RELEASE loSbPath