Hello,
I have been agonizing over a problem with a service I'm trying to call from RESTXQ. The service (www.tei-c.org/oxgarage/) only accepts multipart/form-data submissions. It provides a front-end client for uploading files from the browser, which calls a back-end RESTful service to do document conversion.
I've installed a local instance of the service ( https://github.com/TEIC/oxgarage) and have it running on Tomcat 7, along with BaseX.
The problem arises when I try to submit documents with non-ASCII characters from RESTXQ. Looking at the network traffic, I can see that if the document contains only ASCII characters, the multipart submission body is not base64 encoded. For example:
Encapsulated multipart part: (text/xml) Content-Disposition: form-data; name='fileToConvert'; filename='homework.xml'\r\n Content-Type: text/xml\r\n\r\n eXtensible Markup Language <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta/> <title> Test </title> </head> <body> <math xmlns="http://www.w3.org/1998/Math/MathML"> <msub> <mi/> <mn> 2 </mn> </msub> </math> </body> </html>
However, if the document does contain non-ASCII characters (such as β), BaseX sets the Content-Transfer-Encoding to "base64." This causes the OxGarage service to fail because it thinks it is receiving an image file rather than a textual document. For example:
Content-Type: text/xml\r\n Content-Transfer-Encoding: base64\r\n\r\n eXtensible Markup Language [truncated] PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhLz48\r\ndGl0bGU+VGVzdDwvdGl0bGU+PC9oZWFkPjxib2R5PjxtYXRoIHhtbG5zPSJodHRwOi8vd3d3Lncz\r\nLm9yZy8xOTk4L01hdGgvTWF0aE1MIj48bXN1Yj48bWk+zrI8L21pPjxtbj5Ud288L21
Attached here is a basic test case to replicate the problem: an HTML page with a form and the RESTXQ function that it calls.
I've tried setting a new header to specify Content-Transfer-Encoding as "binary" instead of "base64," but it doesn't replace the default header. Is there any way that the encoding could be controlled from RESTXQ?
Thanks in advance!
Tim
-- Tim A. Thompson Metadata Librarian (Spanish/Portuguese Specialty) Princeton University Library
www.linkedin.com/in/timathompson tat2@princeton.edu