عند التعامل مع تكنولوجيا الشبكات في برمجة تطبيقات Android باستخدام مكتبة OkHTTPClient، قد يواجه المطورون بعض التحديات في إعداد البروكسي بالتحقق. يعتبر البروكسي هو نقطة التوسط التي تتيح لتطبيقك التواصل بشكل غير مباشر مع الخوادم عبر الإنترنت، وإذا كانت هناك حاجة للمصادقة على البروكسي، يصبح من الضروري تضمين بيانات اعتماد معينة.
لتحقيق ذلك باستخدام OkHTTPClient، يمكنك تعيين البروكسي عبر الطريقة proxy
المتاحة في OkHttpClient.Builder
، ولكن يجب عليك أيضًا توفير بيانات المصادقة. في الشيفرة التي قدمتها، تم استخدام بنية تحمل اسم “Basic” لتمرير بيانات اعتماد المستخدم.
لتكوين البروكسي، يمكنك استخدام الكود التالي كمثال:
javaProxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("your_proxy_ip", your_proxy_port));
Authenticator proxyAuthenticator = (route, response) -> {
String credential = Credentials.basic("your_username", "your_password");
return response.request().newBuilder()
.header("Proxy-Authorization", credential)
.build();
};
OkHttpClient client = new OkHttpClient.Builder()
.proxy(proxy)
.proxyAuthenticator(proxyAuthenticator)
.connectTimeout(60, TimeUnit.SECONDS)
.writeTimeout(60, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
.build();
يرجى استبدال “your_proxy_ip” و”your_proxy_port” و”your_username” و”your_password” بقيم فعلية. يقوم الكود بإنشاء كائن Proxy
ويعينه كبروكسي لـ OkHttpClient.Builder
، ثم يقوم بتعيين مصادق البروكسي باستخدام proxyAuthenticator
الذي يستخدم بيانات المصادقة.
من ثم، يمكنك استخدام client
المكون لإرسال طلبات HTTP عبر البروكسي بشكل آمن وفعّال. يتيح لك هذا الأسلوب السيطرة الكاملة على تكوين البروكسي وتوفير بيانات المصادقة اللازمة للاتصال بشكل صحيح وآمن.
المزيد من المعلومات
فيما يلي شرح أكثر تفصيلاً حول الكود الذي تم توفيره لتكوين بروكسي مع مصادقة في OkHTTPClient:
-
Proxy Type و InetSocketAddress:
- تم استخدام
Proxy.Type.HTTP
للإشارة إلى أن البروكسي يدعم HTTP. InetSocketAddress
يحدد عنوان IP ورقم المنفذ للبروكسي.
javaProxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("your_proxy_ip", your_proxy_port));
- تم استخدام
-
Proxy Authenticator:
- تم استخدام
Authenticator
لتوفير مصادقة البروكسي. - يتم تحديد
proxyAuthenticator
بواسطة واجهةAuthenticator
باستخدام لامبدا (Lambda expression).
javaAuthenticator proxyAuthenticator = (route, response) -> { String credential = Credentials.basic("your_username", "your_password"); return response.request().newBuilder() .header("Proxy-Authorization", credential) .build(); };
- تم استخدام
-
Configuring OkHttpClient:
- يتم بناء
OkHttpClient
باستخدامOkHttpClient.Builder
. - تم تعيين البروكسي ومصادقه باستخدام الطرق
proxy
وproxyAuthenticator
على التوالي.
javaOkHttpClient client = new OkHttpClient.Builder() .proxy(proxy) .proxyAuthenticator(proxyAuthenticator) .connectTimeout(60, TimeUnit.SECONDS) .writeTimeout(60, TimeUnit.SECONDS) .readTimeout(60, TimeUnit.SECONDS) .build();
- يتم بناء
-
إستخدام OkHttpClient:
- يمكنك الآن استخدام
client
لإرسال طلبات HTTP عبر البروكسي. - في الكود الأصلي الذي قدمته، يتم إرسال طلب GET إلى URL محدد.
javaRequest request = new Request.Builder() .url(urlString) .get() .addHeader("authorization", "Basic " + password) .addHeader("cache-control", "no-cache") .build(); Response response = client.newCall(request).execute();
- يمكنك الآن استخدام
هذا الكود يضمن أن جميع الاتصالات تمر عبر البروكسي المحدد، ويتيح لك توفير بيانات المصادقة اللازمة لضمان الوصول الآمن إلى الخوادم عبر البروكسي. يمكنك استبدال القيم في الكود بالبيانات الفعلية الخاصة بالبروكسي الذي تقوم بتكوينه.