# Native Code > برنامه نویسی موبایل > Android Studio >  نمایش ندادن آدرس url از نوع https

## kamal70

سلام آدرس url volley دراندروید از نوع https هست وقتی روی گوشی اندروید ۴٫۲ اجرا می کنم این خطا رو میده com.android.volley.NoConnectionError: javax.net.ssl.SSLException: Connection closed by peer چیکار کنم تا اندروید ۴ هم https قبول کنه؟ .

----------


## mz6488

سلام.یه کلاس درست کن و کدهای زیر رو داخلش قرار بده بعد متد allowAllSSL رو تو اکتیویتی اصلی فراخونیش کن.میتونی این متد رو قبل از ارسال درخواست هم استفاده کنی.

package mylib;


import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;


import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;


public class HttpsTrustManager implements X509TrustManager {


    private static TrustManager[] trustManagers;
    private static final X509Certificate[] _AcceptedIssuers = new X509Certificate[]{};


    @Override
    public void checkClientTrusted(
            X509Certificate[] x509Certificates, String s)
            throws java.security.cert.CertificateException {


    }


    @Override
    public void checkServerTrusted(
            X509Certificate[] x509Certificates, String s)
            throws java.security.cert.CertificateException {


    }


    public boolean isClientTrusted(X509Certificate[] chain) {
        return true;
    }


    public boolean isServerTrusted(X509Certificate[] chain) {
        return true;
    }


    @Override
    public X509Certificate[] getAcceptedIssuers() {
        return _AcceptedIssuers;
    }


    public static void allowAllSSL() {




        HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {


            @Override
            public boolean verify(String arg0, SSLSession arg1) {
                return true;
            }


        });


        SSLContext context = null;
        if (trustManagers == null) {
            trustManagers = new TrustManager[]{new HttpsTrustManager()};
        }


        try {
            context = SSLContext.getInstance("TLS");
            context.init(null, trustManagers, new SecureRandom());
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (KeyManagementException e) {
            e.printStackTrace();
        }


        HttpsURLConnection.setDefaultSSLSocketFactory(cont  ext
                .getSocketFactory());
    }


}

----------


## kamal70

روش شما رو هم اجرا کردم فرقی نکرد همون ارور قبلی رو میده

----------


## mz6488

سمت سرورت رو با چی نوشتی؟تو اندروید دیگه هم همین خطا رو میده؟

----------


## kamal70

سمت سرور با پی اچ پی نوشتم 
اندروید پنج و شش https قبول می کنه
 با اندروید چهار https قبول نمی کنه ولی http قبول می کنه

----------


## mz6488

خودم از همون کدی که فرستادم نتیجه گرفتم.ssl رو سرور معتبره؟یعنی تو مرورگر ارور نمیده؟

----------


## kamal70

تو مرورگر مشکلی نداره 
ssl من رایگانه می تونه به خاطر رایگان بودنش باشه؟

----------


## mz6488

فکر نکنم رایگان بودنش ربطی به این قضیه داشته باشه.فقط موقعی که تو مرورگر واردش میکنی نباید خطای نامعتبر بودن بده.کتابخونه زیر رو نصب کن ببین بازم خطا میده یا نه.هر چند کتابخونه ش منقضی شده ولی به شخص تا حالا تو ورژن  های مختلف اندروید مشکلی ازش ندیدم
'com.mcxiaoke.volley:library-aar:1.0.0'

----------


## kamal70

ممنون ولی درست نشد

----------

