I've got a utility running now which will extract data from my chosen IDO via the Advanced Load Collection endpoint (thanks to some pointers from TimBoyden)
The next challenge is to see if I can upload data via the Additem endpoint. I've mocked up a test JSON file and have managed to upload it via Postman. Having deleted the new record, I've now tried to upload it via my utility. I can see from the message boxes that I've inserted that it is going to the correct URL and is both reading the required JSON file

And calculating its length correctly (320 bytes). Postman gave the same figure but clearly I've got something in the wrong order

even though to my eyes I'm doing what it says I should be doing.
Can anyone advise where I'm going wrong?
Thanks
'Send POST message to upload data
Dim PostQuery As String = "SLReasons/additem"
RESTUrl = txtURL + PostCollectionSuffix + PostQuery
MessageBox.Show(RESTUrl)
Dim PostPayload As String = GetTextFromFile("C:TempUpload1.json")
MessageBox.Show(PostPayload)
MessageBox.Show(PostPayload.Length)
Dim PostRequest As HttpWebRequest = HttpWebRequest.Create(RESTUrl)
PostRequest.Method = "POST"
PostRequest.Proxy = Nothing
PostRequest.Headers.Clear()
PostRequest.Headers.Add("Authorization", Data)
PostRequest.ContentType = "application/JSON"
'PostRequest.ContentType = "text/plain"
PostRequest.ContentLength = PostPayload.Length
Dim PostStreamWriter As New System.IO.StreamWriter(PostRequest.GetRequestStream())
PostStreamWriter.WriteLine(PostPayload)
Dim PostResponse As HttpWebResponse = PostRequest.GetResponse
Dim PostResponseStream As System.IO.Stream = PostResponse.GetResponseStream
Dim PostStreamReader As New System.IO.StreamReader(PostResponseStream)
Dim PostData As String = PostStreamReader.ReadToEnd
PostStreamReader.Close()
PostStreamWriter.Close()
MessageBox.Show("Try " & PostData)