2013-08-28 14 views
5

Ich bekomme eine seltsame Codierung Problem von einem ZF2 API Anruf. Ich habe die api prüft intern funktioniert, und die Antwort, die er angenommen hat, kommt in der api Routine von diesem zurück zu senden, die eine Bilddatei nimmt und beschneidet es:Bizarre Encodierung in Antwort von ZF2 api Anruf mit curl

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

A Dump von $ führen, bevor es gesendet wird sieht aus wie folgt aus:

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

Aber die tatsächliche Antwort, die ich bin immer ist wie folgt zurück:

^_<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>^@^@^@ 

Hier ist, wie ich die api bin Aufruf, Locke mit:

$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(); 

Der Teil, der codiert aussieht, ist ein Speicherauszug von $ responseContent. Ich denke, es könnte gezippt werden, weil der Antwort-Header sagt, dass der Content-Typ gzip ist, habe ich vergeblich versucht, verschiedene Aufrufe zu entpacken, vergeblich. Was zum Teufel geht hier vor?

Antwort

8

Der Inhalt wird mit gzip komprimiert. Sie müssen getBody() und nicht getContent() für die Antwort verwenden.