Hello Odi, is this meant as an extension or as a replacement for directly passing the InputStream? In the second case, I would add something like isRepeatable() to handle cases where it is indeed not possible to read the data twice. I'd prefer an explicit check to some exception being thrown from getAsStream(), where every implementor may decide for a different class and/or message.
Can you fill me in on the details of the POST request: does the InputStream provide the full HTTP message body (entity) for the request, or is it possible to send multiple parameters, each of them being a file or string or something else? In the second case, RequestEntity is probably a misleading name for the interface. cheers, Roland Ortwin Glück <[EMAIL PROTECTED]> 26.02.2004 10:46 Please respond to "Commons HttpClient Project" To: Commons HttpClient Project <[EMAIL PROTECTED]> cc: Subject: [RFE] provide request entities in a more abstract way Providing only an InputStream as a request body is not enough. We can not automatically repeat such a request since we are unable to reset the input stream without buffering it. I suggest we introduce an abstraction for the source of request entities such as: interface RequestEntity { /** * Provides an input stream of the request entity. The method may be called * more than once and must provide a virgin stream upon each call. */ InputStream getAsStream(); } We can then provide convenience classes that implement this interface, such as: * class StringRequestEntity implements RequestEntity * class FileRequestEntity implements RequestEntity etc. What does everybody think about this? Odi -- _________________________________________________________________ NOSE applied intelligence ag ortwin glück [www] http://www.nose.ch software engineer [email] [EMAIL PROTECTED] hardturmstrasse 171 [pgp id] 0x81CF3416 8005 zürich [office] +41-1-277 57 35 switzerland [fax] +41-1-277 57 12 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]