2014-10-23 6 views
15

मैंने देखा कि लैरवेल के पास एक साफ विधि है Request::wantsJson - मुझे लगता है कि जब मैं अनुरोध करता हूं तो मैं जेएसओएन प्रतिक्रिया का अनुरोध करने के लिए जानकारी पास कर सकता हूं, लेकिन मैं यह कैसे कर सकता हूं, और यह पता लगाने के लिए लार्वेल का क्या मानदंड है कि अनुरोध JSON के लिए पूछता है ?लैरावेल कैसे अनुरोध करता है अनुरोध :: wantsJson JSON के लिए अनुरोध है?

उत्तर

26

यह ग्राहक द्वारा भेजे गए Accept हेडर का उपयोग यह निर्धारित करने के लिए करता है कि यह JSON प्रतिक्रिया चाहता है या नहीं।

के the code पर नजर डालते हैं: ग्राहक application/json करने के लिए पहले स्वीकार्य सामग्री प्रकार के साथ एक अनुरोध भेजता है

public function wantsJson() { 
    $acceptable = $this->getAcceptableContentTypes(); 
    return isset($acceptable[0]) && $acceptable[0] == 'application/json'; 
} 

तो अगर तो विधि सच वापस आ जाएगी।

के लिए के रूप में कैसे JSON अनुरोध करने के लिए, आप उसके अनुसार Accept हैडर स्थापित करना चाहिए, यह क्या पुस्तकालय आप अपने मार्ग क्वेरी करने के लिए उपयोग करने पर निर्भर करता है, यहाँ पुस्तकालयों के साथ कुछ उदाहरण हैं मुझे पता है:

Guzzle (पीएचपी):

GuzzleHttp\get("http://laravel/route", ["headers" => ["Accept" => "application/json"]]); 

cURL (पीएचपी):

$curl = curl_init(); 
curl_setopt_array($curl, [CURLOPT_URL => "http://laravel/route", CURLOPT_HTTPHEADER => ["Accept" => "application/json"], CURLOPT_RETURNTRANSFER => true]); 
curl_exec($curl); 

Requests (अजगर):

requests.get("http://laravel/route", headers={"Accept":"application/json"}) 
संबंधित मुद्दे