Hi all -

Well... after staggering around and clutching my head for a few hours I
realized that I didn't need the `multipart` at all (tricked by tricky API
documentation, once again!).

http:send-request(
<http:request method='POST' username='{$user}' password='{$pass}'
    auth-method='Basic' send-authorization='true'>
  <http:header name='Content-Type' value='{$content-type}'/>
  <http:body media-type='{$content-type}'/>
</http:request>,
'http
://localhost:8080/fedora/objects/tdh:2/datastreams/OBJ?versionable=true?dsLocation=/path/to/my/
image.tif',
file:read-binary('/path/to/my/image.tif')
)

is working great.

Have a lovely day and/or night.
Best,
Bridger


On Wed, May 20, 2020 at 5:40 PM Bridger Dyson-Smith <bdysonsm...@gmail.com>
wrote:

> Hi all -
>
> I'm trying to use BaseX to POST an image to a digital asset management
> system (i.e. I'm not using RESTXQ, etc, just using BaseX to compose and
> send the request).
>
> The request:
> http:send-request(
> <http:request method='POST' username='{$user}' password='{$pass}'
>     auth-method='Basic' send-authorization='true'>
>   <http:multipart media-type='multipart/form-data'>
>       <http:body media-type='image/tiff'/>
>   </http:multipart>
> </http:request>,
> '
> http://localhost:8080/fedora/objects/tdh:2/datastreams/OBJ?versionable=true?dsLocation=/path/to/my/image.tif
> ',
> file:read-binary('/path/to/my/image.tif')
> )
>
> I'm a hapless caveman when it comes to http, and so when the binary
> content gets POSTed, the mime-type becomes something like
> 'multipart/form-data;boundary=1BEF0A57BE110FD467A'. I'm clearly missing
> something in the http:request but... I don't know what.
>
> Any suggestions? It seems like I need some training wheels here, but I'm
> not sure which ones. :)
> Thank you, in advance, for your time and trouble.
> Best,
> Bridger
>

Reply via email to