使用应用

时间:2015-11-02 16:58:07

标签: android

我已经编写了以下代码,用于将文件从网址下载到Android应用程序的外部存储器中。

现在我想在获取访问权限之前添加检查授权,该怎么做?

当我在浏览器中输入网址时,它会询问用户名和密码

            URL url = null;
            try {
                url = new URL("http://192.168.0.1:4040/usb_dev/usb_a1/New%20folder/ebook-%20sql_serve.doc");


            //create the new connection
            HttpURLConnection urlConnection = null;

                urlConnection = (HttpURLConnection) url.openConnection();


            //set up some things on the connection

                urlConnection.setRequestMethod("GET");

            urlConnection.setDoOutput(true);

            //and connect!

                //String basicAuth = "Basic " + new String(Base64.encode("admin:".getBytes(), Base64.NO_WRAP ));
               // urlConnection.setRequestProperty ("Authorization", basicAuth);
               // urlConnection.setConnectTimeout(30000);
               // urlConnection.setReadTimeout(30000);
                urlConnection.connect();


            //set the path where we want to save the file
            //in this case, going to save it on the root directory of the
            //sd card.
            File SDCardRoot = Environment.getExternalStorageDirectory();
            //create a new file, specifying the path, and the filename
            //which we want to save the file as.
            File file = new File(SDCardRoot,"sql.doc");

            //this will be used to write the downloaded data into the file we created
            FileOutputStream fileOutput = null;

                fileOutput = new FileOutputStream(file);

            //this will be used in reading the data from the internet
            InputStream inputStream = null;
                inputStream = urlConnection.getInputStream();


            //this is the total size of the file
            int totalSize = urlConnection.getContentLength();
            //variable to store total downloaded bytes
            int downloadedSize = 0;

            //create a buffer...
            byte[] buffer = new byte[1024];
            int bufferLength = 0; //used to store a temporary size of the buffer

            //now, read through the input buffer and write the contents to the file

                while ( (bufferLength = inputStream.read(buffer)) > 0 ) {
                    //add the data in the buffer to the file in the file output stream (the file on the sd card
                    fileOutput.write(buffer, 0, bufferLength);
                    //add up the size so we know how much is downloaded
                    downloadedSize += bufferLength;
                    //this is where you would do something to report the prgress, like this maybe
                    // updateProgress(downloadedSize, totalSize);
                }

            //close the output stream when done

                fileOutput.close();
            } catch (MalformedURLException e1) {
                e1.printStackTrace();
            } catch (ProtocolException e1) {
                e1.printStackTrace();
            } catch (FileNotFoundException e1) {
                e1.printStackTrace();
            }catch (IOException e1) {
                e1.printStackTrace();
            }

0 个答案:

没有答案