العنوان الأساسي لـ HttpClient: نظرة فاحصة
توضح هذه المقالة السلوك الذي غالبًا ما يُساء فهمه لخاصية HttpClient
الخاصة بـ BaseAddress
. يواجه العديد من المطورين نتائج غير متوقعة عند إنشاء معرفات URI باستخدام BaseAddress
المحدد جزئيًا. سنقوم بتحليل المشكلة وتقديم الاستخدام الصحيح للتأكد من أن طلبات GET
الخاصة بك تصل دائمًا إلى الهدف المقصود.
المشكلة: إنشاء URI غير متوقع
إعداد BaseAddress
على "http://something.com/api" ثم استخدام "/resource/7" باعتباره URI النسبي في GetAsync
قد يبدو أنه يجب أن يؤدي إلى "http://something.com/api/resource/7". ومع ذلك، هذا يفشل عادة. إضافة شرطة مائلة زائدة إلى BaseAddress
("http://something.com/api/") لا يضمن أيضًا النجاح.
القطعة المفقودة: التوثيق والتطبيق العملي
بينما تشير الوثائق الرسمية إلى BaseAddress
باعتباره "العنوان الأساسي لمورد الويب"، إلا أنها تفتقر إلى إرشادات واضحة حول الدور الحاسم للشرطة المائلة للأمام. ومن خلال التجربة يصبح الحل واضحا:
العنوان الأساسي
يتطلب شرطة مائلة للأمام (/).GetAsync
بشرطة مائلة للأمام (/).
الكود التالي يوضح عملية الدمج الناجحة:
باستخدام (var Handler = new HttpClientHandler()) باستخدام (عميل var = HttpClient الجديد (المعالج)) { client.BaseAddress = new Uri("http://something.com/api/"); استجابة var = انتظار العميل.GetAsync("resource/7");
using (var handler = new HttpClientHandler())
using (var client = new HttpClient(handler))
{
client.BaseAddress = new Uri("http://something.com/api/");
var response = await client.GetAsync("resource/7");
}
http://something.com/api/resource/7الخلاصة: إتقان العنوان الأساسي لطلبات HTTP الموثوقةالاستخدام الفعال لـ
HttpClientالعنوان الأساسي يتوقف على الفهم الدقيق لوضع الشرطة المائلة. من خلال اتباع الإرشادات الموضحة أعلاه - شرطة مائلة لاحقة في
BaseAddress وعدم وجود شرطة مائلة بادئة في URI النسبي - يمكن للمطورين ضمان سلوك متسق ويمكن التنبؤ به في طلبات HTTP الخاصة بهم. يمكن أن تمنع هذه التفاصيل البسيطة على ما يبدو حدوث مشكلات كبيرة في تصحيح الأخطاء.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3