Apache HttpClient لجافا: دليل شامل مع أمثلة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو Apache HttpClient ولماذا هو مطلوب

\n\n

Apache HttpClient هي مكتبة قوية ومرنة بلغة جافا، مصممة لتنفيذ طلبات HTTP. توفر للمطورين تحكمًا كاملاً في عملية إرسال واستقبال البيانات عبر بروتوكول HTTP. على عكس الفئة المضمنة java.net.HttpURLConnection، يقدم Apache HttpClient واجهة برمجة تطبيقات (API) ذات مستوى أعلى، ودعمًا للمعايير الحديثة (HTTP/1.1، HTTP/2)، وعملًا مريحًا مع الكوكيز، والمصادقة، ومجموعة الاتصالات، ومعترضات الطلبات.

\n\n

المكتبة لا غنى عنها في السيناريوهات التالية:

\n
    \n
  • التفاعل مع REST API — إرسال طلبات GET، POST، PUT، DELETE إلى خدمات الويب.
  • \n
  • تحليل صفحات الويب — تنزيل محتوى HTML لتحليله لاحقًا.
  • \n
  • اختبار تطبيقات الويب — محاكاة طلبات العميل.
  • \n
  • بنية الخدمات المصغرة — تبادل البيانات بين الخدمات.
  • \n
  • تنزيل الملفات — تحميل البيانات الثنائية (الصور، الأرشيفات).
  • \n
\n\n

تثبيت Apache HttpClient

\n\n

لا يتم تثبيت Apache HttpClient عبر pip أو npm، لأنه مكتبة لجافا. لتوصيلها، يتم استخدام نظام إدارة التبعيات Maven أو Gradle. فيما يلي تعليمات لكلا الخيارين.

\n\n

التثبيت عبر Maven (pom.xml)

\n

أضف التبعيات التالية إلى ملف pom.xml الخاص بك:

\n
<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:

\n
implementation 'org.apache.httpcomponents:httpclient:4.5.14'\nimplementation 'org.apache.httpcomponents:httpmime:4.5.14'
\n\n

للعمل مع HTTP/2 (الإصدار 5.x) استخدم:

\n
implementation 'org.apache.httpcomponents.client5:httpclient5:5.3.1'
\n\n

بداية سريعة: أول طلب HTTP

\n\n

أنشئ فئة جافا بسيطة وقم بتنفيذ طلب GET إلى API عام:

\n\n
import 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\n

1. HttpGet — تنفيذ طلب GET

\n

الوصف: ينشئ طلب HTTP GET لجلب البيانات من الخادم.

\n

المعلمات:

\n
    \n
  • String uri — عنوان URL للطلب.
  • \n
\n

<

توصيات