آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

چگونگی دانلود فایل از سایت با پروتکل https مثل همین سایت در جاوا-اندروید

Hadi  8 سال پیش  8 سال پیش
0 0

سلام. دوستان کد پایین کد ساده دانلود فایل و ذخیره اون تو موبایل هست که برای بعضی لینک ها درست کار میکنه و برای بسیاری دیگه مثل همین سایت و آپارت در بعضی مواقع و ... درست کار نمی کنه. علت اش چیه؟ ممنون میشم دوستان اگر بدونند راهنمایی کنند. سپاس

 package com.test;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;


public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Thread thread = new Thread(new Runnable() {

            @Override
            public void run() {

                try {

                    URL url = new URL("https://learn.uncox.com/android/request/Activities/01%20-%20An%20Activity%20Lifecycle.rar");
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    connection.connect();

                    InputStream stream = connection.getInputStream();
                    Log.i("Log", "size: " + connection.getContentLength());

                    FileOutputStream output = new FileOutputStream(Base.path + "file.rar");

                    byte[] buffer = new byte[8 * 1024];
                    int len;

                    while ((len = stream.read(buffer)) != -1) {
                        output.write(buffer, 0, len);
                    }
                    stream.close();
                    output.close();

                }
                catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });
        thread.start();
    }
}
0 0
شاید کسی جواب داد! (8 سال پیش)
 برای این سوال 1 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
Hadi  8 سال پیش
+1 0

 پاسخ صحیح

خدا رو شکر جوابش رو فهیمدم. مینویسم شاید به درد کسی خورد.

وضعیت رو که لاگ کردم کد 302 رو بهم داد که معنیه زیر رو میده:

کد 302 به این معنی است که منبع درخواستی یافت شده، اما مرورگر باید موقتا به آدرس دیگری منتقل شود

برا بدست آوردن آدرس موقتی فایل باید کد زیر استفاده کرد که یک String رو به ما میده که همون آدرس فایل هست:

 String link = connection.getHeaderField("Location"); 

connection تو این خط همون HttpURLConnection ای هست که تو کد های بالا هست.بقیه کار هم مثل قبل هست و باید با این لینک جدید اتصال رو برقرار کرد و فایل رو دانلود کرد. این رو فعلا فقط برای uncox امتحان کردم و درست کار کرد. سایتای دیگه رو نمیدونم و بعدا تست خواهم کرد.

 

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .