मैं गाउट का उपयोग कर एक वेब क्रॉलर पर काम कर रहा हूं(Fabpot / goutte)। जब मैं किसी https साइट से कनेक्ट करने का प्रयास करता हूं, तो यह एक त्रुटि है क्योंकि साइट स्व-हस्ताक्षरित प्रमाणपत्र का उपयोग कर रही है। मैं इस तथ्य को अनदेखा करने के लिए कर्ल मापदंडों को निर्धारित करने का तरीका खोजने की कोशिश कर रहा हूं कि एसएसएल प्रमाण पत्र स्वयं हस्ताक्षरित है। में निर्देशों का पालन https://github.com/FriendsOfPHP/Goutte मैंने निम्नलिखित कोड की कोशिश की:
$this->client = new Client();
$this->client->getClient()->setDefaultOption("config/curl/".CURLOPT_SSL_VERIFYPEER, false);
$this->client->getClient()->setDefaultOption("config/curl/".CURLOPT_CERTINFO, false);
दुर्भाग्य से जब इस कोड को निष्पादित किया जाता है, तो निम्न त्रुटि दी जाती है:
बिल्ली के समान घातक त्रुटि: गुज़लहेटप्लीकेंट के लिए तर्क 3 पास किया गया :: अनुरोध () प्रकार का होना चाहिए, बूलियन दिया गया
"पैरामीटर सेट अप करने का तरीका पता नहीं लगा सकता है। कॉल कैसे अपेक्षित है? किसी भी मदद की सराहना की जाएगी।"
उत्तर:
उत्तर № 1 के लिए 1वैसे कर्ल विकल्प सेट करने के लिए, यह दिखता हैगुझिया कुंजी "कर्ल" को एक विन्यास सेटिंग के रूप में पहचानती है, जो कर्ल से संबंधित कॉन्फ़िगरेशन मूल्यों की एक सरणी में ले जाती है। तो जो आप शुरू में हासिल करने की कोशिश कर रहे थे उसके बराबर ही निम्न की तरह दिखेगा
$client = new GoutteClient();
$guzzleClient = new GuzzleHttpClient(array(
"curl" => array(
CURLOPT_TIMEOUT => 60,
),
));
$client->setClient($guzzleClient);
$crawler = $client->request("GET", $my_url);
यह सुनिश्चित नहीं है कि इसके बाद से यह कितना अच्छा हैगन डॉक्स में कहीं भी संकेत नहीं किया गया है (और इसे इस तरह से करने से यह CURL पर निर्भर होने का आभास कराता है, जो मुझे लगता है कि यह गज़ल का उद्देश्य नहीं है। इसलिए सामान्य टाइमआउट कॉन्फ़िगरेशन प्रविष्टि)।
जवाब के लिए 0 № 2
मैंने जो किया वह निम्नलिखित है:
$this->client->setClient(new GuzzleClient(["verify" => false]));
GuzzleClient की शुरुआत करते समय "सत्यापन" => झूठा यह प्रमाण पत्रों को सत्यापित नहीं करता है।