我想制作一个程序,连接到本地运行的Tomcat服务器。使用用户名,密码验证,然后用户便可以在服务器目录中上传文件。即http:// localhost:8080 / uploadfiles。从用户定义的文件路径开始,与下载到本地目录相同。
这是一种可能性:下载:
URL url = new URL("http://localhost:8080/uploadfiles"); HttpURLConnection con = (HttpURLConnection)url.openConnection(); try { con.addRequestProperty("Authorization", "Basic " + encode64(username + ":" + password)); InputStream in = con.getInputStream(); try { OutputStream out = new FileOutputStream(outFile); try { byte buf[] = new byte[4096]; for (int n = in.read(buf); n > 0; n = in.read(buf)) { out.write(buf, 0, n); } } finally { out.close(); } } finally { in.close(); } } finally { con.disconnect(); }
上载:
URL url = new URL("http://localhost:8080/uploadfiles"); HttpURLConnection con = (HttpURLConnection)uploadUrl.openConnection(); try { con.setDoOutput(true); con.setRequestMethod("POST"); con.addRequestProperty("Authorization", "Basic " + encode64(username + ":" + password)); OutputStream out = con.getOutputStream(); try { InputStream in = new FileInputStream(inFile); try { byte buffer[] = new byte[4096]; for (int n = in.read(buffer); n > 0; n = in.read(buffer)) { out.write(buffer, 0, n); } } finally { in.close(); } } finally { out.close(); } int code = con.getResponseCode(); if (code != HttpURLConnection.HTTP_OK) { String msg = con.getResponseMessage(); throw new IOException("HTTP Error " + code + ": " + msg); } } finally { con.disconnect(); }
现在,在服务器端,您将需要区分GET和POST请求并进行相应处理。您将需要一个库来处理上传,例如apache FileUpload
哦,在客户端,您将需要一个执行Base64编码的库,例如apache commons编解码器