Android удаленное изображение ОШИБКА - PullRequest
0 голосов
/ 21 октября 2011

Я хочу скачать изображение с удаленного сервера.Но каждый раз, когда я получаю исключение nullpointer.

Метод для соединения с сервером

private InputStream OpenHttpConnection(String urlString)
    throws IOException
    {
    InputStream in = null;
    int response = -1;

    URL url = new URL(urlString);
    URLConnection conn = url.openConnection();

    if (!(conn instanceof HttpURLConnection))                    
        throw new IOException("Not an HTTP connection");

    try{
        HttpURLConnection httpConn = (HttpURLConnection) conn;
        httpConn.setAllowUserInteraction(false);
        httpConn.setInstanceFollowRedirects(true);
        httpConn.setRequestMethod("GET");
        httpConn.connect();

        response = httpConn.getResponseCode();                
        if (response == HttpURLConnection.HTTP_OK) {
            in = httpConn.getInputStream();    
            Log.i("Download ", "Response: OK");
           }     
        else
            Log.i("Download ", "Response: NOK");
    }
    catch (Exception ex)
    {
        throw new IOException("Error connecting");            
    }
    return in;    
}

Метод для создания растрового изображения

private Bitmap DownloadImage(String URL)
    {        
        Bitmap bitmap = null;
        InputStream in = null;        
    try {
        in = OpenHttpConnection(URL);
        Log.i("Download ", "InputStream Available: " +in.available());
        bitmap = BitmapFactory.decodeStream(in);
        Log.i("Download ", "Bitmap: " +bitmap.describeContents());
        in.close();
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    return bitmap;                
}

Нулевое указательException генерируется, когда я decodeStream, но когда я использую другой URL, он работает.

Я запускаю Apache на порт 90. Может ли это также иметь эффект, если таковой имеется.

1 Ответ

1 голос
/ 21 октября 2011

попробуйте это, я надеюсь, работает.

для соединения с ftp используйте этот код

public FTPClient mFTPClient = null;

public boolean ftpConnect(String host, String username,
                              String password, int port)
    {
        try {
            mFTPClient = new FTPClient();
            // connecting to the host
            mFTPClient.connect(host, port);

            // now check the reply code, if positive mean connection success
            if (FTPReply.isPositiveCompletion(mFTPClient.getReplyCode())) {
                // login using username & password
                boolean status = mFTPClient.login(username, password);
                return status;
            }
        } catch(Exception e) {
            Log.d(TAG, "Error: could not connect to host " + host );
        }

        return false;
    }

для загрузки файла используйте этот код

public boolean ftpDownload(String srcFilePath, String desFilePath)
{
    boolean status = false;
    try {
        FileOutputStream desFileStream = new FileOutputStream(desFilePath);;
        status = mFTPClient.retrieveFile(srcFilePath, desFileStream);
        desFileStream.close();

        return status;
    } catch (Exception e) {
        Log.d(TAG, "download failed");
    }

    return status;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...