看板 AndroidDev 關於我們 聯絡資訊
這個方法也是我參考某些前輩來修改的~ 但只要執行下載 java.io.IOException: Unable to connect to server: Unable to configure data port at libcore.net.url.FtpURLConnection.connect(FtpURLConnection.java:203) at com.example.user.ftpupload.MainActivity$DownloadTask. doInBackground(MainActivity.java:172) connection.connect();這行會掛 可是我查了相關的實作~ 我在URL那邊的網址字串是可以的 但一直連不進去~ 請問有大大可以指正我一下嗎? 因為查了不少文章 都是跟HTTP的範例有關的 還是我FTP寫的網址是錯誤的呢?? 感恩 private void StartDownload(){ String url="ftp://user:pass@192.168.1.106:21/spanish.pdf"; new DownloadTask().execute(url); } @Override @Deprecated protected Dialog onCreateDialog(int id){ switch (id){ case DIALOG_DOWNLOAD_PROGRESS: mProgressDialog = new ProgressDialog(this); mProgressDialog.setMessage("Downloading..."); mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); mProgressDialog.setCancelable(true); mProgressDialog.show(); return mProgressDialog; default: return null; } } class DownloadTask extends AsyncTask<String, String, String> { @Override protected void onPreExecute() { super.onPreExecute(); showDialog(DIALOG_DOWNLOAD_PROGRESS); } @Override protected String doInBackground(String... params) { int count; try { URL url= new URL(params[0]); URLConnection connection = url.openConnection(); @@@@@@@@@@@@@@@ connection.connect();掛在這行@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ int filelength=connection.getContentLength(); Log.d("長度", "doInBackground: "+filelength); InputStream input= new BufferedInputStream(url.openStream()); OutputStream output= new FileOutputStream(android.os.Environment.getExternalStorageDirectory().getAbsolutePath()+"/Download/lesson"); byte data[]= new byte[1024]; int total=0; while((count=input.read(data))!=-1) { total += count; publishProgress("" + (int) ((total * 100) / filelength)); output.write(data, 0, count); } output.flush(); output.close(); input.close(); } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String result) { dismissDialog(DIALOG_DOWNLOAD_PROGRESS); } @Override protected void onProgressUpdate(String... values) { Log.d("HEHEHEHE", values[0]); mProgressDialog.setProgress(Integer.parseInt(values[0])); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.99.157 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1501687984.A.F56.html
cf1064: 在. connect之前,params[0]有值? 08/03 00:54
lovelycateye: 你手機是用4G連還是跟你電腦同個WiFi? 08/03 11:50
lovelycateye: 那看起來是內網IP,先確認你是連到跟電腦相同WiFi吧 08/03 11:50
iori9100: 給上面前輩,我是用模擬器的,網路應該是在同網域,另外 08/03 17:56
iori9100: param[0]得到的值是 執行方法宣告的網址 08/03 17:56
ssccg: 用實機試試看 08/03 18:09
lovelycateye: 我用 Unable to configure data port 還不少啊 08/04 00:42
lovelycateye: 第一個結果的你確定有試過?https://goo.gl/nTxU3w 08/04 00:42
iori9100: 其實下載檔案OK 但我是不知道怎麼把過程丟給進度條..@@ 08/04 13:17
iori9100: 類似用上面那個網址 先把PORT號那些參數都設定好就可以 08/04 13:18