# Java FTP



## moemaster (9. Februar 2010)

Moin moin,
ich versuche nun schon mehrere Tage verzweifelt Dateien auf einen FTP-Server zu transferieren - allerdings über einen Proxy. Ohne Proxy kein Problem. Aber sobald's hinter einen Proxy soll geht's nicht. Ich nutze die commons-net-Library. Ich habe schon sämtliche 'System.getProperties().put("http/ftp.proxy[...]' ausprobiert und zusätzlich noch mit SocketAddress rumgespielt - ohne Erfolg. Ich wäre sehr dankbar für Tipps, wenn möglich mit Codeschnippsel.
Vielen Dank im Vorraus
Moe


----------



## zer0 (9. Februar 2010)

So vielleicht:


```
System.setProperty("proxyHost", "proxy.tutorials.de");
System.setProperty("proxyPort", "8080");
```


----------



## moemaster (9. Februar 2010)

Sorry, aber wie ich schon sagte: diese System.getProperties-Geschichte habe ich bereits in allen Variationen ausprobiert.


----------



## vfl_freak (9. Februar 2010)

Moin,

habe gerade mal geschaut und in meinem Projekt ziemlich zentral Folgendes gefunden:


```
java.util.Properties prop = System.getProperties();
prop.put("proxySet", "true");
prop.put("http.proxyHost", "aaa.bbb.ccc.ddd");
prop.put("http.proxyPort", "8080");
```

Vlt. hilft das ja weiter 

Gruß
Klaus


----------



## moemaster (9. Februar 2010)

Oh man...tut mir leid, aber bitte LEST, was ich geschrieben habe!

Das habe ich alles schon ausprobiert und zwar ohne Erfolg!

```
System.getProperties().put("ftp.proxySet", true); 
                System.getProperties().put("ftp.proxyHost", "*******"); 
                System.getProperties().put("ftp.proxyPort", ****); 
                System.getProperties().put("ftp.proxyUser", "*******"); 
                System.getProperties().put("ftp.proxyPassword", "*******"); 
                
                SocketAddress addr = new InetSocketAddress("***********", ****); 
                Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr); 
                Socket socket = new Socket(proxy); 
                InetSocketAddress dest = new InetSocketAddress("ftp.******.net", ****); 
                socket.connect(dest); 
                
                
                System.getProperties().put("socksProxyPort", "****"); 
                System.getProperties().put("socksProxyHost", "*******"); 
                
                System.getProperties().put("ftp.proxySet", "true"); 
                System.getProperties().put("ftp.proxyHost", "********"); 
                System.getProperties().put("ftp.proxyPort", "****"); 

                System.getProperties().put("http.proxySet", true); 
                System.getProperties().put("http.proxyHost", "*******"); 
                System.getProperties().put("http.proxyPort", ****); 
                System.getProperties().put("http.proxyUser", "*******"); 
                System.getProperties().put("http.proxyPassword", "*******");
```

Alles tolle Vorschläge, die man nach 2 Minuten googlen bekommt. Aber wie anfangs schon erwähnt: SO gehts in meinem Fall NICHT!


----------



## vfl_freak (9. Februar 2010)

moemaster hat gesagt.:


> Oh man...tut mir leid, aber bitte LEST, was ich geschrieben habe!
> Das habe ich alles schon ausprobiert und zwar ohne Erfolg!
> Alles tolle Vorschläge, die man nach 2 Minuten googlen bekommt. Aber wie anfangs schon erwähnt: SO gehts in meinem Fall NICHT!



Hmm, würde mich offengestanden ein wundern, weil es ja, wie Du auch schreibst, die überall beschriebene Vorgehensweise ist ....
Mal dumm gefragt: hast Du alle Einstellungen aus Deinem letzte Post auf einmal gesetzt oder nacheinander?
Sicher, dass nicht irgendwo ein dummer kleiner Schreibfehler (ggf. auch Groß-/Kleinschreibung) vorlag?
Hast Du ggf. mal einen anderen FTP-Client ausprobiert?
Ich arbeite hier mit edtFTPj (http://www.linux-magazin.de/NEWS/EdtFTPj-2.0.0-Java-Bibliothek-fuer-FTP-Clients)

Gruß
Klaus


----------



## moemaster (9. Februar 2010)

vfl_freak hat gesagt.:


> Hmm, würde mich offengestanden ein wundern, weil es ja, wie Du auch schreibst, die überall beschriebene Vorgehensweise ist ....


Nicht ganz In mehreren Foren haben Leute ein Problem mit FTP+Proxy und überall werden diese Ratschläge gegeben, die aber im Falle von commons-net anscheinend nicht greifen. Deshalb habe ich das ja auch von Anfang an ausgeschlossen und gehofft, dass hier jemand damit Erfahrungen gemacht, und das Problem gelöst hat. Aber danke für den Link, ich werd's mir mal ansehen.

//EDIT:
Ich habe mir einmal den Link angesehen. Der Proxy-Support ist wohl nur gegen Bezahlung erhältlich. Und ich gebe sicherlich keine 499$ für eine Java-Library aus 
http://www.enterprisedt.com/products/edtftpj/choose.html


----------



## zerix (9. Februar 2010)

Hallo,

hast du schon mal versucht?

```
System.setProperty("http.proxyHost", "myProxyServer.com");
System.setProperty("http.proxyPort", "80");
URL url=new URL("http://someserver/somepage");
URLConnection uc = url.openConnection ();
String encoded = new String
      (Base64.base64Encode(new String("username:password").getBytes()));
uc.setRequestProperty("Proxy-Authorization", "Basic " + encoded);
uc.connect();
```

Gruß

Sascha


----------



## moemaster (9. Februar 2010)

Mal was anderes. Danke Aber hat leider auch nicht funktioniert.


----------



## zerix (9. Februar 2010)

Kommt denn irgendeine Fehlermeldung?

Gruß

Sascha


----------



## moemaster (9. Februar 2010)

Jap. Also ich musste mir erst einmal die Klasse Base64 ziehen und als ich die dann eingebaut habe kam eine MalformedURLException: no protocol


----------



## zerix (9. Februar 2010)

Wie sieht denn genau der Aufruf bei dir aus?

Gruß

Sascha


----------



## vfl_freak (9. Februar 2010)

moemaster hat gesagt.:


> //EDIT:
> Ich habe mir einmal den Link angesehen. Der Proxy-Support ist wohl nur gegen Bezahlung erhältlich. Und ich gebe sicherlich keine 499$ für eine Java-Library aus
> http://www.enterprisedt.com/products/edtftpj/choose.html



Seltsam, wir haben hier in der Firma auch (aus gleichem Grund ) die freie Version und wir müssen ganz eindeutig über einen Proxy-Server raus ... und außer dem oben gepostenen Einstellungen habe ich nix anders gesetzt .....

Gruß
Klaus


----------



## moemaster (9. Februar 2010)

vfl_freak hat gesagt.:


> Seltsam, wir haben hier in der Firma auch (aus gleichem Grund ) die freie Version und wir müssen ganz eindeutig über einen Proxy-Server raus ... und außer dem oben gepostenen Einstellungen habe ich nix anders gesetzt .....
> 
> Gruß
> Klaus



Alles klar, dann zieh ich mir mal die freie und guck, obs damit geht Wenn ja bist du der Held des Tages.


----------



## moemaster (9. Februar 2010)

Es ist zum Bekloppt-Werden! Ich bekomm auch mit dieser Library eine ConnectException und ein Timeout...


----------

