Sample code for 30+ languages & platforms
SQL Server

WordPress Media Upload

See more WordPress Examples

Demonstrates how to upload a media file to WordPress.

Chilkat SQL Server Downloads

SQL Server
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @iTmp0 int
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

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

    DECLARE @http int
    EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    --  This example will use WordPress username / Application password authentication using the "Applications Password" plugin.
    --  See https://wordpress.org/plugins/application-passwords/

    --  Use your WordPress login, such as "admin", not the application name.
    EXEC sp_OASetProperty @http, 'Login', 'wp_username'
    --  Use the application password, such as "Nths RwVH eDJ4 weNZ orMN jabq"
    EXEC sp_OASetProperty @http, 'Password', 'app_password'
    EXEC sp_OASetProperty @http, 'BasicAuth', 1

    DECLARE @req int
    EXEC @hr = sp_OACreate 'Chilkat.HttpRequest', @req OUT

    EXEC sp_OASetProperty @req, 'HttpVerb', 'POST'

    --  Use the Content-Type that corresponds to the type of file you are uploading.

    --  WordPress supports uploading the following file types:

    --  Images
    --  
    --      .jpg  (image/jpg)
    --      .jpeg  (image/jpeg)
    --      .png  (image/png)
    --      .gif  (image/gif)
    --      .ico (image/x-icon)
    --  
    --  Documents
    --  
    --      .pdf (applicatin/pdf)
    --      .doc, .docx (application/msword)
    --      .ppt, .pptx, .pps, .ppsx (application/mspowerpoint)
    --      .odt 
    --      .xls, .xlsx (application/msexcel)
    --      .psd (??? image/vnd.adobe.photoshop,application/x-photoshop,application/photoshop,application/psd,image/psd)
    --  
    --  Audio
    --  
    --      .mp3 (audio/mpeg)
    --      .m4a
    --      .ogg
    --      .wav (audio/wav)
    --  
    --  Video
    --  
    --      .mp4, .m4v (video/mp4)
    --      .mov (video/quicktime)
    --      .wmv (video/x-ms-wmv)
    --      .avi (video/avi)
    --      .mpg (video/mpeg)
    --      .ogv 
    --      .3gp 
    --      .3g2 

    EXEC sp_OASetProperty @req, 'ContentType', 'image/jpg'
    EXEC sp_OASetProperty @req, 'Path', '/wp-json/wp/v2/media'

    EXEC sp_OAMethod @req, 'LoadBodyFromFile', @success OUT, 'qa_data/jpg/starfish.jpg'
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @req, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @http
        EXEC @hr = sp_OADestroy @req
        RETURN
      END

    EXEC sp_OAMethod @req, 'AddHeader', NULL, 'Content-Disposition', 'attachment; filename=starfish.jpg'

    EXEC sp_OAMethod @req, 'AddHeader', NULL, 'Expect', '100-continue'

    DECLARE @resp int
    EXEC @hr = sp_OACreate 'Chilkat.HttpResponse', @resp OUT

    EXEC sp_OAMethod @http, 'HttpSReq', @success OUT, 'www.yourserver.com', 443, 1, @req, @resp
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @http
        EXEC @hr = sp_OADestroy @req
        EXEC @hr = sp_OADestroy @resp
        RETURN
      END


    EXEC sp_OAGetProperty @resp, 'StatusCode', @iTmp0 OUT
    PRINT 'HTTP response status: ' + @iTmp0

    DECLARE @jsonResponse int
    EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jsonResponse OUT

    EXEC sp_OAGetProperty @resp, 'BodyStr', @sTmp0 OUT
    EXEC sp_OAMethod @jsonResponse, 'Load', @success OUT, @sTmp0

    EXEC sp_OASetProperty @jsonResponse, 'EmitCompact', 0
    EXEC sp_OAMethod @jsonResponse, 'Emit', @sTmp0 OUT
    PRINT @sTmp0

    --  Sample JSON response:
    --  (Sample code for parsing the JSON response is shown below)

    --  {
    --    "id": 1915,
    --    "date": "2021-01-19T18:25:01",
    --    "date_gmt": "2021-01-20T01:25:01",
    --    "guid": {
    --      "rendered": "http:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish.jpg",
    --      "raw": "http:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish.jpg"
    --    },
    --    "modified": "2021-01-19T18:25:01",
    --    "modified_gmt": "2021-01-20T01:25:01",
    --    "slug": "starfish",
    --    "status": "inherit",
    --    "type": "attachment",
    --    "link": "https:\/\/cknotes.com\/starfish\/",
    --    "title": {
    --      "raw": "starfish",
    --      "rendered": "starfish"
    --    },
    --    "author": 1,
    --    "comment_status": "closed",
    --    "ping_status": "closed",
    --    "template": "",
    --    "meta": [
    --    ],
    --    "permalink_template": "https:\/\/cknotes.com\/?attachment_id=1915",
    --    "generated_slug": "starfish",
    --    "description": {
    --      "raw": "",
    --      "rendered": "<p class=\"attachment\"><a href='https:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish.jpg'><img width=\"120\" height=\"120\" src=\"https:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish.jpg\" class=\"attachment-medium size-medium\" alt=\"\" loading=\"lazy\" srcset=\"http:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish.jpg 120w, http:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish-100x100.jpg 100w\" sizes=\"(max-width: 120px) 100vw, 120px\" \/><\/a><\/p>\n"
    --    },
    --    "caption": {
    --      "raw": "",
    --      "rendered": ""
    --    },
    --    "alt_text": "",
    --    "media_type": "image",
    --    "mime_type": "image\/jpeg",
    --    "media_details": {
    --      "width": 120,
    --      "height": 120,
    --      "file": "2021\/01\/starfish.jpg",
    --      "sizes": {
    --        "woocommerce_gallery_thumbnail": {
    --          "file": "starfish-100x100.jpg",
    --          "width": 100,
    --          "height": 100,
    --          "mime_type": "image\/jpeg",
    --          "source_url": "https:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish-100x100.jpg"
    --        },
    --        "shop_thumbnail": {
    --          "file": "starfish-100x100.jpg",
    --          "width": 100,
    --          "height": 100,
    --          "mime_type": "image\/jpeg",
    --          "source_url": "https:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish-100x100.jpg"
    --        },
    --        "full": {
    --          "file": "starfish.jpg",
    --          "width": 120,
    --          "height": 120,
    --          "mime_type": "image\/jpeg",
    --          "source_url": "https:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish.jpg"
    --        }
    --      },
    --      "image_meta": {
    --        "aperture": "0",
    --        "credit": "",
    --        "camera": "",
    --        "caption": "",
    --        "created_timestamp": "0",
    --        "copyright": "",
    --        "focal_length": "0",
    --        "iso": "0",
    --        "shutter_speed": "0",
    --        "title": "",
    --        "orientation": "0",
    --        "keywords": [
    --        ]
    --      }
    --    },
    --    "post": null,
    --    "source_url": "https:\/\/cknotes.com\/wp-content\/uploads\/2021\/01\/starfish.jpg",
    --    "missing_image_sizes": [
    --    ],
    --    "_links": {
    --      "self": [
    --        {
    --          "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/media\/1915"
    --        }
    --      ],
    --      "collection": [
    --        {
    --          "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/media"
    --        }
    --      ],
    --      "about": [
    --        {
    --          "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/types\/attachment"
    --        }
    --      ],
    --      "author": [
    --        {
    --          "embeddable": true,
    --          "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/users\/1"
    --        }
    --      ],
    --      "replies": [
    --        {
    --          "embeddable": true,
    --          "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/comments?post=1915"
    --        }
    --      ],
    --      "wp:action-unfiltered-html": [
    --        {
    --          "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/media\/1915"
    --        }
    --      ],
    --      "wp:action-assign-author": [
    --        {
    --          "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/media\/1915"
    --        }
    --      ],
    --      "curies": [
    --        {
    --          "name": "wp",
    --          "href": "https:\/\/api.w.org\/{rel}",
    --          "templated": true
    --        }
    --      ]
    --    }
    --  }

    --  Sample code for parsing the JSON response...
    --  Use the following online tool to generate parsing code from sample JSON:
    --  Generate Parsing Code from JSON

    DECLARE @date_gmt int
    EXEC @hr = sp_OACreate 'Chilkat.DtObj', @date_gmt OUT

    DECLARE @href nvarchar(4000)

    DECLARE @embeddable int

    DECLARE @name nvarchar(4000)

    DECLARE @templated int

    DECLARE @id int
    EXEC sp_OAMethod @jsonResponse, 'IntOf', @id OUT, 'id'
    DECLARE @date nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @date OUT, 'date'
    EXEC sp_OAMethod @jsonResponse, 'DtOf', @success OUT, 'date_gmt', 0, @date_gmt
    DECLARE @guidRendered nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @guidRendered OUT, 'guid.rendered'
    DECLARE @guidRaw nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @guidRaw OUT, 'guid.raw'
    DECLARE @modified nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @modified OUT, 'modified'
    DECLARE @modified_gmt nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @modified_gmt OUT, 'modified_gmt'
    DECLARE @slug nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @slug OUT, 'slug'
    DECLARE @status nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @status OUT, 'status'
    DECLARE @v_type nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @v_type OUT, 'type'
    DECLARE @link nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @link OUT, 'link'
    DECLARE @titleRaw nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @titleRaw OUT, 'title.raw'
    DECLARE @titleRendered nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @titleRendered OUT, 'title.rendered'
    DECLARE @author int
    EXEC sp_OAMethod @jsonResponse, 'IntOf', @author OUT, 'author'
    DECLARE @comment_status nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @comment_status OUT, 'comment_status'
    DECLARE @ping_status nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @ping_status OUT, 'ping_status'
    DECLARE @template nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @template OUT, 'template'
    DECLARE @permalink_template nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @permalink_template OUT, 'permalink_template'
    DECLARE @generated_slug nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @generated_slug OUT, 'generated_slug'
    DECLARE @descriptionRaw nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @descriptionRaw OUT, 'description.raw'
    DECLARE @descriptionRendered nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @descriptionRendered OUT, 'description.rendered'
    DECLARE @captionRaw nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @captionRaw OUT, 'caption.raw'
    DECLARE @captionRendered nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @captionRendered OUT, 'caption.rendered'
    DECLARE @alt_text nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @alt_text OUT, 'alt_text'
    DECLARE @media_type nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_type OUT, 'media_type'
    DECLARE @mime_type nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @mime_type OUT, 'mime_type'
    DECLARE @media_detailsWidth int
    EXEC sp_OAMethod @jsonResponse, 'IntOf', @media_detailsWidth OUT, 'media_details.width'
    DECLARE @media_detailsHeight int
    EXEC sp_OAMethod @jsonResponse, 'IntOf', @media_detailsHeight OUT, 'media_details.height'
    DECLARE @media_detailsFile nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsFile OUT, 'media_details.file'
    DECLARE @media_detailsSizesWoocommerce_gallery_thumbnailFile nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsSizesWoocommerce_gallery_thumbnailFile OUT, 'media_details.sizes.woocommerce_gallery_thumbnail.file'
    DECLARE @media_detailsSizesWoocommerce_gallery_thumbnailWidth int
    EXEC sp_OAMethod @jsonResponse, 'IntOf', @media_detailsSizesWoocommerce_gallery_thumbnailWidth OUT, 'media_details.sizes.woocommerce_gallery_thumbnail.width'
    DECLARE @media_detailsSizesWoocommerce_gallery_thumbnailHeight int
    EXEC sp_OAMethod @jsonResponse, 'IntOf', @media_detailsSizesWoocommerce_gallery_thumbnailHeight OUT, 'media_details.sizes.woocommerce_gallery_thumbnail.height'
    DECLARE @media_detailsSizesWoocommerce_gallery_thumbnailMime_type nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsSizesWoocommerce_gallery_thumbnailMime_type OUT, 'media_details.sizes.woocommerce_gallery_thumbnail.mime_type'
    DECLARE @media_detailsSizesWoocommerce_gallery_thumbnailSource_url nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsSizesWoocommerce_gallery_thumbnailSource_url OUT, 'media_details.sizes.woocommerce_gallery_thumbnail.source_url'
    DECLARE @media_detailsSizesShop_thumbnailFile nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsSizesShop_thumbnailFile OUT, 'media_details.sizes.shop_thumbnail.file'
    DECLARE @media_detailsSizesShop_thumbnailWidth int
    EXEC sp_OAMethod @jsonResponse, 'IntOf', @media_detailsSizesShop_thumbnailWidth OUT, 'media_details.sizes.shop_thumbnail.width'
    DECLARE @media_detailsSizesShop_thumbnailHeight int
    EXEC sp_OAMethod @jsonResponse, 'IntOf', @media_detailsSizesShop_thumbnailHeight OUT, 'media_details.sizes.shop_thumbnail.height'
    DECLARE @media_detailsSizesShop_thumbnailMime_type nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsSizesShop_thumbnailMime_type OUT, 'media_details.sizes.shop_thumbnail.mime_type'
    DECLARE @media_detailsSizesShop_thumbnailSource_url nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsSizesShop_thumbnailSource_url OUT, 'media_details.sizes.shop_thumbnail.source_url'
    DECLARE @media_detailsSizesFullFile nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsSizesFullFile OUT, 'media_details.sizes.full.file'
    DECLARE @media_detailsSizesFullWidth int
    EXEC sp_OAMethod @jsonResponse, 'IntOf', @media_detailsSizesFullWidth OUT, 'media_details.sizes.full.width'
    DECLARE @media_detailsSizesFullHeight int
    EXEC sp_OAMethod @jsonResponse, 'IntOf', @media_detailsSizesFullHeight OUT, 'media_details.sizes.full.height'
    DECLARE @media_detailsSizesFullMime_type nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsSizesFullMime_type OUT, 'media_details.sizes.full.mime_type'
    DECLARE @media_detailsSizesFullSource_url nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsSizesFullSource_url OUT, 'media_details.sizes.full.source_url'
    DECLARE @media_detailsImage_metaAperture nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsImage_metaAperture OUT, 'media_details.image_meta.aperture'
    DECLARE @media_detailsImage_metaCredit nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsImage_metaCredit OUT, 'media_details.image_meta.credit'
    DECLARE @media_detailsImage_metaCamera nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsImage_metaCamera OUT, 'media_details.image_meta.camera'
    DECLARE @media_detailsImage_metaCaption nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsImage_metaCaption OUT, 'media_details.image_meta.caption'
    DECLARE @media_detailsImage_metaCreated_timestamp nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsImage_metaCreated_timestamp OUT, 'media_details.image_meta.created_timestamp'
    DECLARE @media_detailsImage_metaCopyright nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsImage_metaCopyright OUT, 'media_details.image_meta.copyright'
    DECLARE @media_detailsImage_metaFocal_length nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsImage_metaFocal_length OUT, 'media_details.image_meta.focal_length'
    DECLARE @media_detailsImage_metaIso nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsImage_metaIso OUT, 'media_details.image_meta.iso'
    DECLARE @media_detailsImage_metaShutter_speed nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsImage_metaShutter_speed OUT, 'media_details.image_meta.shutter_speed'
    DECLARE @media_detailsImage_metaTitle nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsImage_metaTitle OUT, 'media_details.image_meta.title'
    DECLARE @media_detailsImage_metaOrientation nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @media_detailsImage_metaOrientation OUT, 'media_details.image_meta.orientation'
    DECLARE @post nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @post OUT, 'post'
    DECLARE @source_url nvarchar(4000)
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @source_url OUT, 'source_url'
    DECLARE @i int
    SELECT @i = 0
    DECLARE @count_i int
    EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, 'meta'
    WHILE @i < @count_i
      BEGIN
        EXEC sp_OASetProperty @jsonResponse, 'I', @i
        SELECT @i = @i + 1
      END
    SELECT @i = 0
    EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, 'media_details.image_meta.keywords'
    WHILE @i < @count_i
      BEGIN
        EXEC sp_OASetProperty @jsonResponse, 'I', @i
        SELECT @i = @i + 1
      END
    SELECT @i = 0
    EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, 'missing_image_sizes'
    WHILE @i < @count_i
      BEGIN
        EXEC sp_OASetProperty @jsonResponse, 'I', @i
        SELECT @i = @i + 1
      END
    SELECT @i = 0
    EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, '_links.self'
    WHILE @i < @count_i
      BEGIN
        EXEC sp_OASetProperty @jsonResponse, 'I', @i
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @href OUT, '_links.self[i].href'
        SELECT @i = @i + 1
      END
    SELECT @i = 0
    EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, '_links.collection'
    WHILE @i < @count_i
      BEGIN
        EXEC sp_OASetProperty @jsonResponse, 'I', @i
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @href OUT, '_links.collection[i].href'
        SELECT @i = @i + 1
      END
    SELECT @i = 0
    EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, '_links.about'
    WHILE @i < @count_i
      BEGIN
        EXEC sp_OASetProperty @jsonResponse, 'I', @i
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @href OUT, '_links.about[i].href'
        SELECT @i = @i + 1
      END
    SELECT @i = 0
    EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, '_links.author'
    WHILE @i < @count_i
      BEGIN
        EXEC sp_OASetProperty @jsonResponse, 'I', @i
        EXEC sp_OAMethod @jsonResponse, 'BoolOf', @embeddable OUT, '_links.author[i].embeddable'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @href OUT, '_links.author[i].href'
        SELECT @i = @i + 1
      END
    SELECT @i = 0
    EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, '_links.replies'
    WHILE @i < @count_i
      BEGIN
        EXEC sp_OASetProperty @jsonResponse, 'I', @i
        EXEC sp_OAMethod @jsonResponse, 'BoolOf', @embeddable OUT, '_links.replies[i].embeddable'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @href OUT, '_links.replies[i].href'
        SELECT @i = @i + 1
      END
    SELECT @i = 0
    EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, '_links.wp:action-unfiltered-html'
    WHILE @i < @count_i
      BEGIN
        EXEC sp_OASetProperty @jsonResponse, 'I', @i
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @href OUT, '_links.wp:action-unfiltered-html[i].href'
        SELECT @i = @i + 1
      END
    SELECT @i = 0
    EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, '_links.wp:action-assign-author'
    WHILE @i < @count_i
      BEGIN
        EXEC sp_OASetProperty @jsonResponse, 'I', @i
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @href OUT, '_links.wp:action-assign-author[i].href'
        SELECT @i = @i + 1
      END
    SELECT @i = 0
    EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, '_links.curies'
    WHILE @i < @count_i
      BEGIN
        EXEC sp_OASetProperty @jsonResponse, 'I', @i
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @name OUT, '_links.curies[i].name'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @href OUT, '_links.curies[i].href'
        EXEC sp_OAMethod @jsonResponse, 'BoolOf', @templated OUT, '_links.curies[i].templated'
        SELECT @i = @i + 1
      END

    EXEC @hr = sp_OADestroy @http
    EXEC @hr = sp_OADestroy @req
    EXEC @hr = sp_OADestroy @resp
    EXEC @hr = sp_OADestroy @jsonResponse
    EXEC @hr = sp_OADestroy @date_gmt


END
GO