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:\\temp\\document.txt");
HttpPut put = new HttpPut("http://192.168.178.25/archive";);
FileBody filebody = new FileBody(fObject);
MultipartEntity entity = new MultipartEntity();
entity.addPart("bin", filebody);
put.setEntity(entity);
...


and


...
InputStreamEntity reqEntity = new InputStreamEntity(new
FileInputStream(fObject), -1);
reqEntity.setContentType("application/octet-stream"); //I've also tried
binary/octet-stream
reqEntity.setChunked(true);
put.setEntity(reqEntity);       
...


the code after each of the both trials (as in the examples described):


System.out.println("PUT Uri: " +put.getURI());
System.out.println("RequestLine: " +put.getRequestLine());
HttpResponse response = httpClient.execute(put);
HttpEntity resEntity = response.getEntity();
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
if (resEntity != null) {
          System.out.println("Response content length: " +
resEntity.getContentLength());
          System.out.println("Chunked?: " + resEntity.isChunked());
}


The output of the system.outs above is the following:


PUT Uri: http://192.168.178.25/archive
RequestLine: PUT http://192.168.178.25/archive HTTP/1.1
----------------------------------------
HTTP/1.1 405 Method Not Allowed
Response content length: 0
Chunked?: false


Why it doesn't work? Or how it works correctly with the PUT? I've never
changed anything on the server's side, so the PUT successfully worked with
the HttpClient 3.1.
Does anybody know, what I'm doing wrong there?


Best 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-tp25510057p25530281.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]

Reply via email to