2013-08-28 11 views
5

का उपयोग कर ZF2 एपीआई कॉल से प्रतिक्रिया में विचित्र एन्कोडिंग मुझे एक zf2 api कॉल से अजीब एन्कोडिंग समस्या मिल रही है। मैं यह सत्यापित किए जाने एपीआई आंतरिक रूप से काम कर रहा है, और प्रतिक्रिया के लिए इसे वापस भेजने के लिए चाहिए था एपीआई दिनचर्या है, जो एक छवि फ़ाइल लेता है और यह फसलों में इस से आता है:कर्ल

$result = new ViewModel(array('output'=>$output, 'response'=>json_encode($response))); 

भेजे जाने से पहले $ का एक डंप परिणाम बाहर इस तरह दिखता है:

[output] => json 
[response] =>{"data":"http:\/\/dev.xxxxx.com\/tools\/files\/temporary_files\/f16da1965e4d0c487ae7692f4b51558b917c238e.1","status":"OK"} 

लेकिन वास्तविक प्रतिक्रिया मैं वापस हो रही है इस तरह है:

^_<8b>^H^@^@^@^@^@^@^C%ÍM 
^B!^T^@໸^Nß¹Â,:B<õI<82><8e><83>¾<82><88>î^Ðò[}o<96><80><80>­ìNt¬B4(5^R>y*<93>F ¥ï<ö&¨÷:E.^U§ lG^_0^·¿³4 ¤7^ZU:Gå, 5~É*h©µ^K^Ú¸\^\rÉNl^RÐcþÖëÆ>_Id»'<83>^@^@^@ 

यहाँ कैसे मैं एपीआई फोन कर रहा हूँ, कर्ल का उपयोग कर रहा है:

$client = new Client($api_url); 
    $adapter = new Curl(); 
    $adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, false); 
    $client->setAdapter($adapter); 

    $request = new Request(); 
    $request->setUri($api_url); 
    $request->setMethod(\Zend\Http\Request::METHOD_POST); 
    $request->setContent($postString); 

    $response = $client->dispatch($request); 
    $responseContent = $response->getContent(); 

एन्कोडेड दिखने वाला हिस्सा $ प्रतिक्रिया सामग्री का डंप है। यह सोचकर कि यह gzipped हो सकता है, क्योंकि प्रतिक्रिया हेडर का कहना है कि सामग्री-प्रकार gzip है, मैंने इसका लाभ उठाने के लिए विभिन्न अनजान कॉल करने का प्रयास किया है। यहाँ क्या हो रहा है?

उत्तर

8

सामग्री gzip के साथ संपीड़ित है। आपको getBody() का उपयोग करने की आवश्यकता है, और प्रतिक्रिया पर सामग्री() नहीं मिलता है।