hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mario Becker-Reinhold <mario.1...@gmx.de>
Subject Re: HttpClient 3.1 PutMethod -> HttpClient 4 HttpPut
Date Wed, 23 Sep 2009 09:55:26 GMT

Hi,
thanks for the quick response. Now, I'm not getting the error with the
indirectly referenced classpath
anymore (I've donwloaded the HttpClient with dependencies instead only the 2
Jar-files...)

But I still need help in executing the PUT method with HttpClient 4. As you
wrote I checked the examples for the POST method, which are technically the
same like the PUT (if I understand it correct). But it doesn't work.

I tried the following 2 ways:

File fObject = new File("c:\\document.txt");
HttpPut put = new HttpPut("http://192.168.178.25/archive");

InputStreamEntity reqEntity = new InputStreamEntity(new
FileInputStream(fObject), -1);
reqEntity.setContentType("binary/octet-stream");
reqEntity.setChunked(true);
put.setEntity(reqEntity);
HttpEntity resEntity = response.getEntity();
...

and also with

FileBody filebody = new FileBody(fObject);
MultipartEntity entity = new MultipartEntity();
entity.addPart("bin", filebody);
put.setEntity(entity);
HttpEntity resEntity = response.getEntity();
...


Now matter what, but I get always the following message: 
HTTP/1.1 405 Method Not Allowed

What I'm doing wrong? I have nothing changed on the server-side, so the
implementation of the PUT is the same. It works fine with HttpClient 3.1 but
not anymore with version 4... and I don't know, what is going wrong there.

Regards,
Mario



olegk wrote:
> 
> On Fri, 2009-09-18 at 07:48 -0700, Mario Becker-Reinhold wrote:
>> Hi Folks,
>> 
>> I'm trying to upgrade some code from HttpClient 3.1 to version 4.
>> 
>> The old code that does a simple PUT in 3.1 is:
>> 
>> HttpClient httpClient = new HttpClient();
>> PutMethod put = new PutMethod(this.getArchiveURL_Put()+ "/"
>> +fObject.getName());
>> RequestEntity entity = new InputStreamRequestEntity(new
>> FileInputStream(fObject)); put.setRequestEntity(entity);	       				
>> httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
>> put.setRequestEntity(entity);
>> 
>> Now, I don't know, how I can put the entity in version 4? There are no
>> more
>> classes for RequestEntity and InputStreamRequestEntity. I didn't find any
>> code examples for Put, only for Get/Post, with this examples I tried to
>> do
>> the following:
>> 
>> HttpClient httpClient = new DefaultHttpClient();
>> HttpPut put = new HttpPut(this.getArchiveURL_Put()+ "/"
>> +fObject.getName());
>> FileBody filebody = new FileBody(fObject);
>> MultipartEntity entity = new MultipartEntity();
>> entity.addPart("file", filebody);
>> put.setRequestEntity(entity);	
>> 
>> 
>> I have removed the jar files of version 3.1 and putted the 2 jar files of
>> version 4 (also to the build-path of eclipse), but now, with the code
>> above,
>> I get the following error message in eclipse:
>> "The type org.apache.james.mime4j.message.SingleBody cannot be resolved.
>> It
>> is indirectly referenced from required .class files"
>> 
>> Can anyone give me a hint or can tell me, if I am with the code above on
>> the
>> right track?
>> 
> 
> Apparently you do not have mime4j jar on the classpath. The best way to
> ensure you have all dependencies is by using Maven to manage your
> project or by downloading the latest binary package with dependencies:
> 
> http://hc.apache.org/downloads.cgi
> 
> Here's an example of multipart POST:
> 
> http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpmime/src/examples/org/apache/http/examples/entity/mime/ClientMultipartFormPost.java
> 
> PUT is virtually identical to POST from the API standpoint.
> 
> Oleg   
> 
> 
> 
>> Thanks in advance, 
>> best regards and have a nice weekend!
>> 
>> Mario
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> For additional commands, e-mail: httpclient-users-help@hc.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/HttpClient-3.1-PutMethod--%3E-HttpClient-4-HttpPut-tp25510057p25531065.html
Sent from the HttpClient-User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org


Mime
View raw message