This is version . It is not the current version, and thus it cannot be edited.
[Back to current version]   [Restore this version]
Here is an example class that can interact with the server using HTTP to do download, upload, delete, rename, makedir, and list.
public class Example
{
 
public String login(String username, String password) 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="+username+"&password="+password).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=/"+serverPath).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);
   
String c2f = auth.substring(auth.length() - 4);
   
if (command.equalsIgnoreCase("delete")) urlc.getOutputStream().write(("command=delete&names="+param1+"&c2f="+c2f).getBytes("UTF8"));
   
else if (command.equalsIgnoreCase("rename")) urlc.getOutputStream().write(("command=rename&name1="+param1+"&name2="+param2+"&c2f="+c2f).getBytes("UTF8"));
   
else if (command.equalsIgnoreCase("makedir")) urlc.getOutputStream().write(("command=makedir&path="+param1+"&c2f="+c2f).getBytes("UTF8"));
   
else if (command.equalsIgnoreCase("getXMLListing")) urlc.getOutputStream().write(("command=getXMLListing&path="+param1+"&c2f="+c2f).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();
 
}
}

Add new attachment

Only authorized users are allowed to upload new attachments.
« This particular version was published on 29-Dec-2020 05:25 by Ben Spink.
G’day (anonymous guest)
CrushFTP10 | What's New

Referenced by
LeftMenu

JSPWiki