Jakob,

That would be great. My situation is almost identical to yours. I'm using a 
third-party API (lulu.com) requiring multipart POSTs for uploading PDFs.

Thanks,
Greg

On Apr 20, 2011, at 4:16 PM, Jakob Fix wrote:

> hi,
> 
> for our project we send PDF files to scribd.com whose API also
> required us to send multipart POST requests. Alex Bleasdale (of
> MarkLogic) wrote an xquery library for us that allows us to do exactly
> what I think you need to do.  I don't think there are any problems
> sharing this code, but I will check first.
> 
> cheers,
> Jakob.
> 
> PS: the project will be presented at mluc11 next Wednesday. :)
> 
> 
> 
> On Tue, Apr 19, 2011 at 22:40, Murray, Gregory <[email protected]> 
> wrote:
>> On Apr 18, 2011, at 8:18 PM, Jason Hunter wrote:
>> 
>>> There's nothing built into MarkLogic that writes the multipart/form-data 
>>> POST body for you.  You're going to have to format the POST message 
>>> yourself according to RFC 1867 with things like the boundary lines and 
>>> content-type headers.
>>> 
>>> (Note that if you do that, it'd be a great thing to add to the commons 
>>> shared code repository on developer.marklogic.com.)
>>> 
>>> The complexity you're going to hit is how to send a binary file in the 
>>> middle of an otherwise text POST body.  MarkLogic doesn't make that easy.  
>>> You can set a binary() node as the POST body, but for RFC 1867 you'll have 
>>> to construct that binary() node yourself from a sequence of strings 
>>> (boundary lines and headers) and raw bytes (actual payload).  If you're 
>>> willing to base64 or hex encode the binary file as a string and decode it 
>>> on the server, then the MarkLogic side will be easy.  It's just one big 
>>> string to manage.
>>> 
>> 
>> I'd like to try that first, but how do I get the binary's base64-encoded 
>> value, when xdmp:base64-encode() only accepts a string?
>> 
>>> But if you can't do that, how would you construct the single binary() node 
>>> that's the combination of strings surrounding another binary() node?  The 
>>> nasty hack that I envision is you'd want to start with the string, get its 
>>> hex or base64 encoded value, append the binary's hex or base 64 encoded 
>>> value, then convert that encoded byte sequence back to a binary() and POST 
>>> that.
>> 
>> If I have to resort to this, how do I convert the base64 string to a binary?
>> 
>> Thanks,
>> Greg
>> 
>>> 
>>> -jh-
>>> 
>>> On Apr 18, 2011, at 1:36 PM, Murray, Gregory wrote:
>>> 
>>>> I need to send an HTTP POST where the data includes multiple string 
>>>> parameters but also a binary file. How can I do this kind of 
>>>> multipart/form-data POST using xdmp:http-post?
>>>> 
>>>> Thanks,
>>>> Greg
>>>> 
>>>> Gregory Murray
>>>> Digital Library Application Developer
>>>> Princeton Theological Seminary
>>>> 
>>>> _______________________________________________
>>>> General mailing list
>>>> [email protected]
>>>> http://developer.marklogic.com/mailman/listinfo/general
>>> 
>>> _______________________________________________
>>> General mailing list
>>> [email protected]
>>> http://developer.marklogic.com/mailman/listinfo/general
>> 
>> _______________________________________________
>> General mailing list
>> [email protected]
>> http://developer.marklogic.com/mailman/listinfo/general
>> 
> _______________________________________________
> General mailing list
> [email protected]
> http://developer.marklogic.com/mailman/listinfo/general

_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to