2017-03-23 4 views
0

Ich kann den gleichen Ordner und die Datei über FileZilla sehr einfach zugreifen.
Ich mache definitiv etwas falsch, aber was? Mein Code ist wie untenIch möchte Bilder in GridView von ftpserver zeigen, und ich bekomme FileNotFound Exception

try{ 
    Bitmap bitmap = null; 
    InputStream in; 
    String userpass = "username:password"; 
    String url = "http://veedeesoft.com/httpdocs/RoyalFoods/Products/Large/1.png"; 
    HttpURLConnection c = (HttpURLConnection) new URL(url).openConnection(); 
    c.setRequestMethod("GET"); 
    c.setDoInput(true); 
    String basicAuth = "Basic " + new String(android.util.Base64.encode(userpass.getBytes(), Base64.DEFAULT)); 
    c.addRequestProperty ("Authorization", basicAuth); 
    c.addRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); 
    c.connect(); 
int status = c.getResponseCode(); 
       if(status >= HttpStatus.SC_BAD_REQUEST){ 
        in = c.getErrorStream(); 
       }else{ 
        in = c.getInputStream(); 
       } 

}catch(Exception e){ 
    e.printStackTrace(); 
} 
+1

Überprüfen Sie Ihre URL. Sein '404'. – Wizard

+0

Kannst du leiten, wie die URL sein sollte, um ftp Server zu verbinden ... – Dev

Antwort

2
public class HttpGetTask extends AsyncTask<String, Void, Void> { 
    protected Void doInBackground(String... urls) { 
     try{ 
      Bitmap bitmap = null; 
      InputStream in;  
       HttpURLConnection c = (HttpURLConnection) new URL(urls[0]).openConnection(); 
      c.setRequestMethod("GET"); 
      c.setDoInput(true); 

      c.connect(); 
      int status = c.getResponseCode(); 
      if(status >= HttpStatus.SC_BAD_REQUEST){ 
       in = c.getErrorStream(); 
      }else{ 
       in = c.getInputStream(); 
      } 

     }catch(Exception e){ 
      e.printStackTrace(); 
     } 

     return null; 
    } 
} 

Verwenden Sie es wie dies:

new HttpGetTask().execute("http://veedeesoft.com/RoyalFoods/Products/Large/1.png"); 

auch stellen Sie sicher, dass die Internet-Erlaubnis in AndroidManifest.xml haben:

<uses-permission android:name="android.permission.INTERNET" /> 
+0

Worked @Chester. Gott segne dich. – Dev

2

Der Grund, warum es funktioniert ist nicht, weil Sie es in einem Hintergrund-Thread ausgeführt werden müssen, würde ich es vorziehen, verwenden Sie AsyncTask (Android: AsyncTask to make an HTTP GET Request?)

+0

Übertragenen Code zu Async Aufgabe, aber immer noch int status = 404. – Dev

+0

Ich denke, es gibt ein Problem in meiner URL. Zeichenkette url = http://veedesoft.com/httpdocs/RoyalFoods/Products/Large/1.png; Ist das der richtige Weg, URL beim Verbinden des FTP-Servers zu schreiben? – Dev

+0

http://veedesoft.com/RoyalFoods/Products/Large/1.png, dies funktioniert im Browser. Ich habe "httpdocs" entfernt, weil das der Site-Hosting-Ordner ist (veedeesoft.com) –

Verwandte Themen