xsodata does'nt throw "Error: Unsupported content type: multipart/mixed;boundary=batch".
The xsodata library directly supports valid OData batch requests. E.g. like
Header: Content-Type: multipart/mixed; boundary=batch_12345
Body:
--batch_12345
Content-Type: multipart/mixed; boundary=changeset_12345_A
--changeset_12345_A
Content-Type: application/http
Content-Transfer-Encoding: binary
POST /key_int_char_modify HTTP/1.1
....
So i suppose there error is thrown in a layer above the odata library.