Sample code for 30+ languages & platforms
PureBasic

WaTrend Create Instance

See more WaTrend Examples

Create a new WaTrend Instance ID.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 0

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

    http.i = CkHttp::ckCreate()
    If http.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; Use your actual access token instead of 555555555555555555555555555555
    resp.i = CkHttpResponse::ckCreate()
    If resp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkHttp::ckHttpNoBody(http,"GET","https://app.watrend.com/api/createinstance.php?access_token=555555555555555555555555555555",resp)
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        CkHttpResponse::ckDispose(resp)
        ProcedureReturn
    EndIf

    sbResponseBody.i = CkStringBuilder::ckCreate()
    If sbResponseBody.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkHttpResponse::ckGetBodySb(resp,sbResponseBody)

    respStatusCode.i = CkHttpResponse::ckStatusCode(resp)
    Debug "Response Status Code = " + Str(respStatusCode)
    If respStatusCode >= 400
        Debug "Response Header:"
        Debug CkHttpResponse::ckHeader(resp)
        Debug "Failed."
        CkHttp::ckDispose(http)
        CkHttpResponse::ckDispose(resp)
        CkStringBuilder::ckDispose(sbResponseBody)
        ProcedureReturn
    EndIf

    ; Both success and failed responses use 200 status code.

    ; A success response contains this JSON in the response body:
    ; {"status":"success","message":"Instance ID generated successfully","instance_id":"638EE5A76D3AA"}

    ; A failed response will contain something like this:
    ; {"status":"error","message":"Access token does not exist"}

    Debug CkHttpResponse::ckBodyStr(resp)

    jResp.i = CkJsonObject::ckCreate()
    If jResp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckLoadSb(jResp,sbResponseBody)

    status.s = CkJsonObject::ckStringOf(jResp,"status")
    instanceId.s = ""
    If CkJsonObject::ckHasMember(jResp,"instance_id") = 1
        instanceId = CkJsonObject::ckStringOf(jResp,"instance_id")
    EndIf

    Debug "status: " + status
    Debug "instance_id: " + instanceId


    CkHttp::ckDispose(http)
    CkHttpResponse::ckDispose(resp)
    CkStringBuilder::ckDispose(sbResponseBody)
    CkJsonObject::ckDispose(jResp)


    ProcedureReturn
EndProcedure