php - Possible to use Zend_Http_Client() and Zend_Rest_Client() together -


मैं वर्तमान में REST क्लाइंट में PHP में Zend Framework और एक समस्या में भाग गया।

मेरे पास वर्तमान में दो डमी सेवाएं हैं जिनके साथ मैं परीक्षण कर रहा हूं; एक 'नोआथ' है जिसके लिए कोई प्रमाणीकरण की आवश्यकता नहीं है और सिर्फ कुछ जेएसओएन देता है, दूसरा 'auth' है जिसके लिए प्रमाणीकरण की आवश्यकता होती है और अधिक विशिष्ट JSON देता है। किसी समस्या के बिना सीधे वेब कार्यों से दोनों तक पहुंचना, उदाहरण के लिए 'https://example.org/example/dummy/noauth' पर नेविगेट करें वेबपेज पर JSON और 'https: //example.org/example/dummy/auth ' उपयोगकर्ता को लॉग इन करने के लिए पूछने वाला संवाद बॉक्स प्रदर्शित करता है।

मेरा लक्ष्य मेरे मुख्य वेब से उन विभिन्न सेवाओं तक पहुंचने में सक्षम होना है आवेदन। उपयोगकर्ता की इस वेब एप पर लॉग इन करने के लिए सबसे पहले की आवश्यकता है। तब वे उस वेब एप्लिकेशन से विभिन्न सेवाओं को कॉल करने में सक्षम होंगे। मैं इस का उपयोग करके आसानी से काम करने वाला नोआउथ प्राप्त कर पा रहा था:

  $ base_url = 'https://example.org'; $ Client = नया Zend_Rest_Client ($ base_url); $ समापन बिंदु = '/ उदाहरण / डमी / नोआउथ'; $ प्रतिक्रिया = $ क्लाइंट- & gt; बाकीगेट ($ समापन बिंदु);  

लेकिन हर बार उपयोगकर्ता के उपयोगकर्ता नाम और पासवर्ड के लिए पूछे बिना मैं 'auth' काम कर रहा हूं। वर्तमान में, मैं इसके लिए कड़ी कोडित मानों का उपयोग कर रहा हूं, लेकिन अंत में, यह वह मूल्य होगा जो सत्र में संग्रहीत उपयोगकर्ता लॉग इन करता था।

मैंने पाया है कि ज़ेंड में एक Zend_Http_Client () विधि जो मुझे लगता है कि इसके लिए इस्तेमाल किया जा सकता है, लेकिन मुझे यह पता नहीं लगा कि इसे कैसे मेरे बाकी के साथ लागू किया जा सकता है।

  $ client = new Zend_Http_Client (); $ Client- & gt; सेटअथ ('उपयोगकर्ता नाम', 'पासवर्ड', Zend_Http_Client :: AUTH_BASIC);  

क्या कोई भी Zend_Rest_Client () को REST से कनेक्ट करने के साथ ही साथ Zend_Http_Client () प्रमाणीकरण के लिए?

अनगिनत घंटे के बाद, आखिरकार इसे समझने में कामयाब हो गया!

आपको कॉल करना है REST ऑब्जेक्ट पर getHttpClient () , और उसके बाद उस फ़ंक्शन को कॉल करें जिसे सामान्यत: Zend_Http_Client () उसके बाद करें।

यहाँ एक त्वरित उदाहरण:

  $ client = नया Zend_Rest_Client ($ base_url); $ Client- & gt; getHttpClient () - & gt; सेटअथ ($ यूज़रनेम, $ पासवर्ड, जेड_एचटीपीएक्लाइंट :: एयूटीबीएएसआईसी); ...  

उम्मीद है कि यह ऐसे अन्य लोगों की सहायता कर सकता है जो अंततः एक ही समस्या का सामना कर सकते हैं।


Comments

Popular posts from this blog

import - Python ImportError: No module named wmi -

Editing Python Class in Shell and SQLAlchemy -

c# - MySQL Parameterized Select Query joining tables issue -