Hi,

  Of course, another solution would be for MarkLogic Server to
provide an API which supports multipart (as well as other HTTP
features) directly out of the box, like the EXPath HTTP Client
API <http://expath.org/spec/http-client> ;-)

  Regards,

-- 
Florent Georges
http://fgeorges.org/


Murray, Gregory wrote:

> 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 <gregory.mur...@ptsem.edu>
> 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
> >>>> General@developer.marklogic.com
> >>>> http://developer.marklogic.com/mailman/listinfo/general
> >>> 
> >>>
> _______________________________________________
> >>> General mailing list
> >>> General@developer.marklogic.com
> >>> http://developer.marklogic.com/mailman/listinfo/general
> >> 
> >> _______________________________________________
> >> General mailing list
> >> General@developer.marklogic.com
> >> http://developer.marklogic.com/mailman/listinfo/general
> >> 
> > _______________________________________________
> > General mailing list
> > General@developer.marklogic.com
> > http://developer.marklogic.com/mailman/listinfo/general
> 
> _______________________________________________
> General mailing list
> General@developer.marklogic.com
> http://developer.marklogic.com/mailman/listinfo/general
> 
_______________________________________________
General mailing list
General@developer.marklogic.com
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to