| At line 3 changed 30 lines |
|
| //login and get an auth token |
| URL u = new URL("https://www.crushftp.com/"); |
| HttpURLConnection urlc = (HttpURLConnection)u.openConnection(); |
| urlc.setRequestMethod("POST"); |
| urlc.setUseCaches(false); |
| urlc.setDoOutput(true); |
| urlc.getOutputStream().write(("command=login&username=demo&password=demo").getBytes("UTF8")); |
| urlc.getResponseCode(); |
| String cookie = urlc.getHeaderField("Set-Cookie"); |
| String auth = cookie.substring(cookie.indexOf("CrushAuth=")+"CrushAuth=".length(),cookie.indexOf(";",cookie.indexOf("CrushAuth="))); |
| urlc.disconnect(); |
|
|
| //download a file using the auth token, and a post. Alternatively you could also just do a GET on the file. |
| URL u = new URL("https://www.crushftp.com/"); |
| HttpURLConnection urlc = (HttpURLConnection)u.openConnection(); |
| urlc.setRequestMethod("POST"); |
| urlc.setRequestProperty("Cookie", "CrushAuth="+auth+";"); |
| urlc.setUseCaches(false); |
| urlc.setDoInput(true); |
| urlc.setDoOutput(true); |
| urlc.getOutputStream().write(("command=download&path=/demo/KB2.txt").getBytes("UTF8")); |
| int code = urlc.getResponseCode(); |
| if (urlc.getURL().toExternalForm().indexOf("/WebInterface/login.html") >= 0) code = 302; |
| if (code == 302) throw new Exception("Logged out".); |
| InputStream in = new BufferedInputStream(urlc.getInputStream()); |
| int bytesRead = 0; |
| byte b[] = new byte[32768]; |
| while (bytesRead >= 0) |
| public class Example |
| At line 34 changed 2 lines |
| bytesRead = in.read(b); |
| if (bytesRead >= 0) out.write(b,0,bytesRead); |
| public String login() throws Exception |
| { |
| //login and get an auth token |
| URL u = new URL("https://www.crushftp.com/"); |
| HttpURLConnection urlc = (HttpURLConnection)u.openConnection(); |
| urlc.setRequestMethod("POST"); |
| urlc.setUseCaches(false); |
| urlc.setDoOutput(true); |
| urlc.getOutputStream().write(("command=login&username=demo&password=demo").getBytes("UTF8")); |
| urlc.getResponseCode(); |
| String cookie = urlc.getHeaderField("Set-Cookie"); |
| String auth = cookie.substring(cookie.indexOf("CrushAuth=")+"CrushAuth=".length(),cookie.indexOf(";",cookie.indexOf("CrushAuth="))); |
| urlc.disconnect(); |
| return auth; |
| } |
| public void download(String auth, String serverPath, String localPath) throws Exception |
| { |
| //download a file using the auth token, and a post. Alternatively you could also just do a GET on the file. |
| URL u = new URL("https://www.crushftp.com/"); |
| HttpURLConnection urlc = (HttpURLConnection)u.openConnection(); |
| urlc.setRequestMethod("POST"); |
| urlc.setRequestProperty("Cookie", "CrushAuth="+auth+";"); |
| urlc.setUseCaches(false); |
| urlc.setDoInput(true); |
| urlc.setDoOutput(true); |
| urlc.getOutputStream().write(("command=download&path=/demo/KB2.txt").getBytes("UTF8")); |
| int code = urlc.getResponseCode(); |
| if (urlc.getURL().toExternalForm().indexOf("/WebInterface/login.html") >= 0) code = 302; |
| if (code == 302) throw new Exception("Logged out."); |
| InputStream in = new BufferedInputStream(urlc.getInputStream()); |
| RandomAccessFile out = new RandomAccessFile(localPath,"rw"); |
| int bytesRead = 0; |
| byte b[] = new byte[32768]; |
| while (bytesRead >= 0) |
| { |
| bytesRead = in.read(b); |
| if (bytesRead >= 0) out.write(b,0,bytesRead); |
| } |
| in.close(); |
| out.close(); |
| urlc.disconnect(); |
| } |
| public void upload(String auth, String serverPath, String localPath) throws Exception |
| { |
| //upload a file using the auth token, and a PUT. |
| URL u = new URL("https://www.crushftp.com"+serverPath); |
| HttpURLConnection urlc = (HttpURLConnection)u.openConnection(); |
| urlc.setRequestMethod("PUT"); |
| urlc.setRequestProperty("Cookie", "CrushAuth="+auth+";"); |
| urlc.setUseCaches(false); |
| urlc.setChunkedStreamingMode(32768); |
| urlc.setDoInput(true); |
| urlc.setDoOutput(true); |
| OutputStream out = urlc.getOutputStream(); |
| RandomAccessFile in = new RandomAccessFile(localPath,"r"); |
| int bytesRead = 0; |
| byte b[] = new byte[32768]; |
| while (bytesRead >= 0) |
| { |
| bytesRead = in.read(b); |
| if (bytesRead >= 0) out.write(b,0,bytesRead); |
| } |
| in.close(); |
| out.close(); |
| int code = urlc.getResponseCode(); |
| if (urlc.getURL().toExternalForm().indexOf("/WebInterface/login.html") >= 0) code = 302; |
| if (code == 302) throw new Exception("Logged out."); |
| urlc.disconnect(); |
| } |
| public void doAction(String auth, String command, String param1, String param2) throws Exception |
| { |
| URL u = new URL("https://www.crushftp.com/"); |
| HttpURLConnection urlc = (HttpURLConnection)u.openConnection(); |
| urlc.setRequestMethod("POST"); |
| urlc.setRequestProperty("Cookie", "CrushAuth="+auth+";"); |
| urlc.setUseCaches(false); |
| urlc.setDoOutput(true); |
| if (command.equalsIgnoreCase("delete")) urlc.getOutputStream().write(("command=delete&names="+param1).getBytes("UTF8")); |
| else if (command.equalsIgnoreCase("rename")) urlc.getOutputStream().write(("command=rename&name1="+param1+"&name2="+param2).getBytes("UTF8")); |
| else if (command.equalsIgnoreCase("makedir")) urlc.getOutputStream().write(("command=makedir&path="+param1).getBytes("UTF8")); |
| else if (command.equalsIgnoreCase("getXMLListing")) urlc.getOutputStream().write(("command=getXMLListing&path="+param1).getBytes("UTF8")); |
| int code = urlc.getResponseCode(); |
| if (urlc.getURL().toExternalForm().indexOf("/WebInterface/login.html") >= 0) code = 302; |
| if (code == 302) throw new Exception("Logged out."); |
| urlc.disconnect(); |
| } |
| At line 37 removed 28 lines |
| in.close(); |
| urlc.disconnect(); |
|
|
| //upload a file using the auth token, and a PUT. |
| URL u = new URL("https://www.crushftp.com/demo/KB4.txt"); |
| HttpURLConnection urlc = (HttpURLConnection)u.openConnection(); |
| urlc.setRequestMethod("PUT"); |
| urlc.setRequestProperty("Cookie", "CrushAuth="+auth+";"); |
| urlc.setUseCaches(false); |
| urlc.setChunkedStreamingMode(32768); |
| urlc.setDoInput(true); |
| urlc.setDoOutput(true); |
| OutputStream out = urlc.getOutputStream(); |
| int bytesRead = 0; |
| byte b[] = new byte[32768]; |
| while (bytesRead >= 0) |
| { |
| bytesRead = in.read(b); |
| if (bytesRead >= 0) out.write(b,0,bytesRead); |
| } |
| out.close(); |
|
| int code = urlc.getResponseCode(); |
| if (urlc.getURL().toExternalForm().indexOf("/WebInterface/login.html") >= 0) code = 302; |
| if (code == 302) throw new Exception("Logged out".); |
| urlc.disconnect(); |
|