ما هو Apache HttpClient ولماذا هو مطلوب
\n\nApache HttpClient هي مكتبة قوية ومرنة بلغة جافا، مصممة لتنفيذ طلبات HTTP. توفر للمطورين تحكمًا كاملاً في عملية إرسال واستقبال البيانات عبر بروتوكول HTTP. على عكس الفئة المضمنة java.net.HttpURLConnection، يقدم Apache HttpClient واجهة برمجة تطبيقات (API) ذات مستوى أعلى، ودعمًا للمعايير الحديثة (HTTP/1.1، HTTP/2)، وعملًا مريحًا مع الكوكيز، والمصادقة، ومجموعة الاتصالات، ومعترضات الطلبات.
المكتبة لا غنى عنها في السيناريوهات التالية:
\n- \n
- التفاعل مع REST API — إرسال طلبات GET، POST، PUT، DELETE إلى خدمات الويب. \n
- تحليل صفحات الويب — تنزيل محتوى HTML لتحليله لاحقًا. \n
- اختبار تطبيقات الويب — محاكاة طلبات العميل. \n
- بنية الخدمات المصغرة — تبادل البيانات بين الخدمات. \n
- تنزيل الملفات — تحميل البيانات الثنائية (الصور، الأرشيفات). \n
تثبيت Apache HttpClient
\n\nلا يتم تثبيت Apache HttpClient عبر pip أو npm، لأنه مكتبة لجافا. لتوصيلها، يتم استخدام نظام إدارة التبعيات Maven أو Gradle. فيما يلي تعليمات لكلا الخيارين.
\n\nالتثبيت عبر Maven (pom.xml)
\nأضف التبعيات التالية إلى ملف pom.xml الخاص بك:
<dependency>\n <groupId>org.apache.httpcomponents</groupId>\n <artifactId>httpclient</artifactId>\n <version>4.5.14</version>\n</dependency>\n\n<dependency>\n <groupId>org.apache.httpcomponents</groupId>\n <artifactId>httpmime</artifactId>\n <version>4.5.14</version>\n</dependency>\n\nالتثبيت عبر Gradle (build.gradle)
\nأضف إلى قسم dependencies:
implementation 'org.apache.httpcomponents:httpclient:4.5.14'\nimplementation 'org.apache.httpcomponents:httpmime:4.5.14'\n\nللعمل مع HTTP/2 (الإصدار 5.x) استخدم:
\nimplementation 'org.apache.httpcomponents.client5:httpclient5:5.3.1'\n\nبداية سريعة: أول طلب HTTP
\n\nأنشئ فئة جافا بسيطة وقم بتنفيذ طلب GET إلى API عام:
\n\nimport org.apache.http.client.methods.CloseableHttpResponse;\nimport org.apache.http.client.methods.HttpGet;\nimport org.apache.http.impl.client.CloseableHttpClient;\nimport org.apache.http.impl.client.HttpClients;\nimport org.apache.http.util.EntityUtils;\n\npublic class QuickStart {\n public static void main(String[] args) {\n // 1. إنشاء عميل HTTP\n try (CloseableHttpClient httpClient = HttpClients.createDefault()) {\n \n // 2. إنشاء طلب GET\n HttpGet request = new HttpGet("https://jsonplaceholder.typicode.com/posts/1");\n \n // 3. تنفيذ الطلب والحصول على الرد\n try (CloseableHttpResponse response = httpClient.execute(request)) {\n \n // 4. استخراج نص الرد\n String body = EntityUtils.toString(response.getEntity());\n \n // 5. عرض النتيجة\n System.out.println("رمز الحالة: " + response.getStatusLine().getStatusCode());\n System.out.println("نص الرد: " + body);\n }\n } catch (Exception e) {\n e.printStackTrace();\n }\n }\n}\n\nالطرق والوظائف الأساسية لـ Apache HttpClient
\n\n1. HttpGet — تنفيذ طلب GET
\nالوصف: ينشئ طلب HTTP GET لجلب البيانات من الخادم.
\nالمعلمات:
\n- \n
String uri— عنوان URL للطلب. \n
<