You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by Eric Johnson <er...@tibco.com> on 2003/06/18 22:59:28 UTC

Webdav client expectations mismatch

At least there seems to be a mismatch in expectations between what 
HttpClient does with URIs, and what slide-webdavlib currently expects.

HttpMethodBase constructor takes String as an argument, and it is 
allowed to be either an absolute URL, or a relative URL.  If it is 
server-relative URL, then the host configuration must be set on 
HttpClient.  Otherwise, HttpClient now keeps "state" information such 
that a single HttpClient object can be used for multiple servers 
simultaneously.  Why does any of this matter?  It would seem that the 
extensions to HttpClient for WebDAV only allow the "server-relative" 
references, not the absolute references.

If you pass "http://myserver:8080/foo" to PropFindMethod, OptionsMethod, 
DeleteMethod, LockMethod, ...., HttpRequestBodyMethodBase calls 
URIUtil.URLEncode(), except that that request has the effect of encoding 
the two colons that appear in the URL, and the request subsequently 
fails.  My suggestion is to change these methods to assume that the URL 
passed to the constructor or setPath() is _already_ encoded as a URL.  
To do otherwise is to continual fight the underlying expectations of 
HttpClient, and break clients expectations when switching back and forth 
between the two APIs.  This is especially true now that the HttpClient 
methods can take full paths in their constructors, but 
slide-webdavclient cannot due to the above encoding issue.

Any objections to a patch along those lines?  While I'm at it, I'm going 
to clean up the uses of now deprecated functionality in HttpClient, and 
fix up the javadoc for JDK 1.4 compiles.

-Eric Johnson




---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org