ok,上一篇 服务器搞定了,这一篇 搞定 客户端
首先 是各种包 了,地址就不贴了,我是找的 jackrabbit的一个jar包,和slide 差不多,slide比较老了,用起来 都一样(这一句话一定会让 大侠笑话我的,,简单应用都一样的)
1 添加 jar包
---省略
2 看文档,,,
英文的:http://jakarta.apache.org/slide/clientjavadoc/org/apache/webdav/lib/methods/package-summary.html
另外一篇,有一些例子:http://wiki.apache.org/jackrabbit/WebDAV
中文的(别人翻译的东东有 一些 在这个文章里):http://hi.baidu.com/deb_ug/item/c33999e40a0fb13c4ddcafd9
看看上图 ,很明显的,那 我们就实现 一个 获取 服务器文件列表 的功能:
2 获取列表 可以通过 获取 资源的属性 获得,,,至于为什么,,看文档喽,,,没办法
由文档可知用 propFindMethod 方法:
下面 只贴代码 ,基本代码都在这里了
//获取服务器的文件
//PublicConstants.URL = http://192.168.10.105:8080/slide
HttpUtil.getFiles(PublicConstants.URL, "root", "root");
public static List<MyFile> getFiles(String url,String username,String password) throws IOException, DavException{
WebDavClient webDavClient = WebDavClientUtil.createWebDavClient( username, password);
List<MyFile> myFiles = null;
PropFindMethod query = null;
//query = new PropFindMethod(url+"/users");
query = new PropFindMethod(url+"/");
webDavClient.executeMethod(query);
MultiStatus resp = null;
resp = query.getResponseBodyAsMultiStatus();
Log.i("tag", resp.getResponses().length+"");
for(int i=1;i<resp.getResponses().length;i++){
if(myFiles == null){
myFiles = new ArrayList<MyFile>();
}
MyFile myFile = new MyFile(resp.getResponses()[i].getHref(), resp.getResponses()[i].getHref());
myFiles.add(myFile);
}
return myFiles;
}
获取 httpClient实例:
public static WebDavClient createWebDavClient(String username,String password){
WebDavClient webDavClient = new WebDavClient();
webDavClient.getParams().setAuthenticationPreemptive(true);
webDavClient.getState().setCredentials(AuthScope.ANY,
getCredentials(username, password));
return webDavClient;
}
ok,很简单吧 其他 的什么上传 下载 等 就不介绍了