DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=27109>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=27109 HTTP Client doesn't support multipart/related content-type ------- Additional Comments From [EMAIL PROTECTED] 2004-02-20 16:44 ------- Yes of course I had a look to MultipartPostMethod. I agree that in most cases it is enough to use just MultipartPostMethod class. That's probably because multipart/related encoding in some way is an extention of multipart/form data. But it is not possible to send data easely that uses features introduced in Multipart/Related data Here are the main problems why it is not possible: (problem1)- 'multipart related part' in comparison with 'multipart form data related part' has additional Content-ID header that can be used as the reference from other multipart related parts; send(OutputStream out) method of Part class doesn't send Content-ID header; so HTTP Client will send something like --example-2 Content-Type: Text/x-Okie; charset=iso-8859-1; {doc} This picture was taken by an automatic camera mounted ... {image file=cid:ID-2} {para} Now this is an enlargement of the area ... {image file=cid:ID-3} {/doc} instead of --example-2 Content-Type: Text/x-Okie; charset=iso-8859-1; Content-ID: ID-1 {doc} This picture was taken by an automatic camera mounted ... {image file=cid:ID-2} {para} Now this is an enlargement of the area ... {image file=cid:ID-3} {/doc} (problem2)- addRequestHeaders(HttpState state, HttpConnection conn) method of MultipartPostMethod class writes to a "Content-Type" something like : "multipart/form-data, boundary=AaB03x" and thit is correct for multipart form data(rfc 1867), but for multipart related data(according to rfc 2387) this method should generate something like: "multipart/related; boundary=AaB03x; start="ID-1" type="Text/x-Okie" where 'start' ant 'type' parameters are the content-ID and type of the compound object's root body part; There are another small diferences as well(see rfc 2387). It looks like the easiest way to make Http Client support multipart/related data is to add two classes : e.g. MultipartRelatedMethod that extends MultipartPostMethod and implements addRequestHeaders(HttpState state, HttpConnection conn) method according to rfc 2387 and MultipartRelatedPart class that extends Part class and implements send(OutputStream out) method according to rfc 2387. Of course classes(for all multipart related parts) should have MultipartRelatedPart as super class. Could you please comment on this. If you know another way how to overcome this problem please tell me. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]