Sample code for 30+ languages & platforms
DataFlex

Send XML REST Request, Get Response with No Body (Google Cloud Storage)

See more REST Examples

Demonstrates sending a RESTful XML request, and receiving a response where the expected response is a header with no body (Content-Length = 0). This example will create a bucket in Google Cloud Storage using the Google Cloud Storage XML API.

See Create a Bucket using the XML API for additional request options.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Variant vGAuth
    Handle hoGAuth
    Handle hoRest
    Boolean iBAutoReconnect
    Handle hoXmlReqBody
    String sResponseStr
    Integer iResponseStatus
    String sTemp1
    Boolean bTemp1

    Move False To iSuccess

    // This example will create a bucket in Google Cloud Storage using the XML API.

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

    Get Create (RefClass(cComChilkatAuthGoogle)) To hoGAuth
    If (Not(IsComObjectCreated(hoGAuth))) Begin
        Send CreateComObject of hoGAuth
    End
    // 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

    Get Create (RefClass(cComChilkatRest)) To hoRest
    If (Not(IsComObjectCreated(hoRest))) Begin
        Send CreateComObject of hoRest
    End

    // Connect using TLS.
    Move True To iBAutoReconnect
    Get ComConnect Of hoRest "www.googleapis.com" 443 True iBAutoReconnect To iSuccess

    // Provide the authentication credentials (i.e. the access key)
    Get pvComObject of hoGAuth to vGAuth
    Get ComSetAuthGoogle Of hoRest vGAuth To iSuccess

    // Build the XML request body for creating a bucket.
    // See https://cloud.google.com/storage/docs/xml-api/put-bucket-create
    Get Create (RefClass(cComChilkatXml)) To hoXmlReqBody
    If (Not(IsComObjectCreated(hoXmlReqBody))) Begin
        Send CreateComObject of hoXmlReqBody
    End
    Set ComTag Of hoXmlReqBody To "CreateBucketConfiguration"
    Send ComNewChild2 To hoXmlReqBody "LocationConstraint" "us"
    Send ComNewChild2 To hoXmlReqBody "StorageClass" "STANDARD"

    // Show the HTTP request body we'll be sending.
    Get ComGetXml Of hoXmlReqBody To sTemp1
    Showln sTemp1

    // There are no query parameters...

    // The HOST header must be specified, because it needs to be different than
    // the domain previously passed to the Connect method.
    // The name of the bucket is the 1st part of the HOST header.
    Get ComAddHeader Of hoRest "Host" "chilkat-example-bucket.storage.googleapis.com" To iSuccess

    // The project ID is specified in an HTTP request header
    Get ComAddHeader Of hoRest "x-goog-project-id" "chilkattest-1050" To iSuccess

    // In this case, the response body is expected to be empty.  We can still
    // call FullRequestString.  We expect an empty string to be returned.
    Get ComGetXml Of hoXmlReqBody To sTemp1
    Get ComFullRequestString Of hoRest "PUT" "/" sTemp1 To sResponseStr
    Get ComLastMethodSuccess Of hoRest To bTemp1
    If (bTemp1 <> True) Begin
        Get ComLastErrorText Of hoRest To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Check the response status code to make sure it is 200.
    Get ComResponseStatusCode Of hoRest To iResponseStatus
    Showln "Response Status Code = " iResponseStatus


End_Procedure