I'd suggest posting wire logs from both your 3.1 and 4.0 implementations. Instructions are at http://hc.apache.org/httpclient-3.x/logging.html and http://hc.apache.org/httpcomponents-client/logging.html respectively.
The fact that you're getting back "HTTP/1.1 405 Method Not Allowed" suggests that the server is refusing your PUT request. A wire capture of both the 3.1 and 4.0 will reveal the true nature of the issue. Sam 2009/9/23 Mario Becker-Reinhold <[email protected]>: > > 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. > > 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: [email protected] >> For additional commands, e-mail: [email protected] >> >> >> > > -- > View this message in context: > http://www.nabble.com/HttpClient-3.1-PutMethod--%3E-HttpClient-4-HttpPut-tp25510057p25531086.html > Sent from the HttpClient-User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
