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

مشکل در ارتباط HTTPS با رتروفیت

132643  6 سال پیش  5 سال پیش
0 0

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

public static Retrofit getClient() {
    if (retrofit == null) {

        retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build();
    }

    return retrofit;
}

در اندروید 5 و بالاتر مشکلی در اتصال نیست و پایین تر متصل نمیشه برای اندروید 4.4 خطای Handshake میده و برای پایین تر از 4.4 هیچ خطایی هم نمیده.
روش این لینک و چندین مورد دیگر امتحان کردم جواب نداد.
https://answers.uncox.com/android/question/29006/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%A8%D8%A7-https-%D8%AF%D8%B1-%D9%86%D8%B3%D8%AE%D9%87-%D9%87%D8%A7%DB%8C-%D9%BE%D8%A7%DB%8C%DB%8C%D9%86-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF

https://stackoverflow.com/questions/53767097/my-app-dont-work-with-self-signed-ssl-in-android-5

در لینک بالا گفتن که باید از کانفیگ آپاچی TLS درس بشه که هاستینگ به دلیل اشتراکی بودن این کار را نمی کند!
لطفا یک راه حل بفرمایید.ممنون تشکر

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
hossein_hr10  5 سال پیش
0 0

سلام توی header برای تمامی requestهایی که دارین یه User-Agent بزارین تست کنین

 
val gsonFactory = GsonConverterFactory.create()
val httpClient = OkHttpClient.Builder()
val logging = HttpLoggingInterceptor()

logging.level = HttpLoggingInterceptor.Level.BODY
httpClient.addInterceptor(logging)
.connectTimeout(60, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
.writeTimeout(60, TimeUnit.SECONDS)
.addNetworkInterceptor { chain ->
chain.proceed(
chain.request()
.newBuilder()
.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:64.0) Gecko/20100101 Firefox/64.0")
.build()
)
}

builder = Retrofit.Builder()
.baseUrl(baseUrl)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(gsonFactory)
.client(httpClient.build())
retrofit = builder.build()

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