Hi Oleg,

Apologies if this is a newbie question; I'm a long time user of httpclient for basic purposes, but am being stumped this week by a more difficult requirement, and wonder if anyone can help.

I need to assemble a multi-part request, consisting of some normal http headers, an xml document in the first mime-part, and a binary document in the second mime-part. I need to augment the mime-parts with their own http headers, also; specifically a Content-Type declaration and a Content-Disposition header for each one (which I believe is allowed by the MIME standard, from what I can discern from the rfc). My current code looks like this:

HttpClient client = new HttpClient();
PostMethod post = new PostMethod(target);

// set the request headers
post.setRequestHeader("Slug", slug);
post.setRequestHeader("X-On-Behalf-Of", user);

// construct the xml and binary file parts
FilePart xmlPart = new FilePart("atom", new File(xml), "text/xml", null);
FilePart binaryPart = new FilePart("binary", new File(binary));

// make the multipart request body
Part[] parts = { xmlPart, binaryPart };
MultipartRequestEntity re = new MultipartRequestEntity(parts, post.getParams());
post.setRequestEntity(re);

// execute the post
client.executeMethod(post);

As you can see, I've got the Content-Type header being set properly in the FilePart constructor, and this works fine. What I can't figure out how to do is add the Content-Disposition header to either of these parts. I've poked around the examples, tutorials and mailing lists but haven't been able to find any examples of this, but I have seen references in the source code to the content disposition in the Part object from which FilePart eventually extends.

Any help or pointers to documentation gratefully appreciated.

All the best,

Richard


Hi Richard,

The Content-Disposition header will be automatically generated by HttpClient.

Ah, I see. And there's no way that I can override the default behaviour? I need to replace the disposition type with an x- extension of my own, unfortunately.

If you want a greater control over the process of MIME content generation,
please consider upgrading to HttpClient 4.0 which has much improved MIME
capabilities based on Apache mime4j.

I'll take a look at that, thanks. I understand 4.0 is still in beta, is there a timescale for a production release yet?

Cheers,

Richard


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to