And if you have access to the server logs, that's also often very useful.

-- Ken

On Sep 23, 2009, at 8:31am, Sam Crawford wrote:

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]


--------------------------
Ken Krugler
TransPac Software, Inc.
<http://www.transpac.com>
+1 530-210-6378


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to