استخدم UIWebView مع خادم وكيل محلي يعمل على iPhone
سؤال
لنفترض أن لدي تطبيق iPhone يحتوي على UIWebView.هل من الممكن كتابة خادم وكيل HTTP الخاص بي على iPhone ثم تمرير كل صفحة تم تحميلها في UIWebView عبر هذا الوكيل؟
أعتقد أن هناك قسمين رئيسيين:
- اكتب خادم وكيل HTTP على iPhone
- تأكد من أن جميع الطلبات الواردة من UIWebView تمر عبر الوكيل الخاص بي
ما مدى صعوبة كتابة مثل هذا الخادم الوكيل؟ما الذي يجب القيام به؟أعلم أن هذا ربما يكون من السذاجة جدًا بالنسبة لي أن أفكر ولكن الأمر يبدو بسيطًا إلى حد ما، أليس كل ما تفعله هو مجرد تلقي الرسائل من العميل وتوجيهها إلى الخادم؟ما الذي يجعل الخادم الوكيل معقدًا جدًا؟
قد يكون هذا مفيدًا إذا كنت تريد تعديل رؤوس HTTP للطلبات التي يتم إرسالها إلى UIWebView.لأنه، في حين (NSURLRequest *)request
المعلمة في [webView:shouldStartLoadWithRequest:navigationType:]
هو في الواقع (NSMutableURLRequest *)
, ، إذا قمت بتعديل أي من قيمها، فلن تعمل (من المؤسف أن الأمر لم يكن بهذه البساطة).
المحلول
ربما يكون من الأفضل لك إنشاء خادم وكيل خارج تطبيق iPhone واستضافته عبر الإنترنت في مكان ما.بعد ذلك، يمكنك تعديل عنوان url في mustStartLoadWithRequest للتحميل فعليًا من الخادم الوكيل الخاص بك.