HttpClient 3.1 PutMethod -> HttpClient 4 HttpPut

View: New views
1 Messages — Rating Filter:   Alert me  

HttpClient 3.1 PutMethod -> HttpClient 4 HttpPut

by Mario Becker-Reinhold :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


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(" document.txt ");
HttpPut put = new HttpPut(" h t t p : // 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@...
> For additional commands, e-mail: httpclient-users-help@...
>
>
>

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


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