Nastaveni body pro HttpResponse

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
czechvar
Člen | 3
+
0
-

Zdravim,
nikde nemuzu najit jak spravne nastavit body u httpResponse

$this->getHttpResponse()->setCode(200);
$this->getHttpResponse()->setContentType('x-www-form-urlencoded','UTF-8');
$this->getHttpResponse()->setHeader('code',0);
$this->getHttpResponse()->setHeader('message','OK');

vytvori spravnou odpoved, ale potrebuji dostat do tela odpovedi string:
code=0&message=OK

zkousel jsem

	$this->getHttpResponse()->setHeader('body','test=2&ee=3');

ale to jen vytvori dalsi hlavicku.
Dekuji za kazdou radu.

Editoval czechvar (26. 6. 2017 22:17)

CZechBoY
Člen | 3608
+
0
-

Na tohle Nette nema preddefinovanou response, je potreba si udelat vlastni. Inspiraci muze byt JsonResponse.

David Matějka
Moderator | 6445
+
+3
-

TextResponse by nestacila? tzn nastavit hlavicky tak, jak to delas ted a

$this->sendResponse(new \Nette\Application\Responses\TextResponse('code=0&message=OK'));
czechvar
Člen | 3
+
0
-

kdyz nastavim TextTesponse tak se hleda latte template, kdyz ji pripravim a do tela pridam code=0&message=OK, tak se zprava v body response objevi, ale nejsou spravne nastavene hlavicky (vraci to 404)

stejna situace je kdyz pouziju

$this->sendResponse(new Nette\Application\Responses\JsonResponse('code=0&message=OK'));

jdu se s tim prat dal :)

David Matějka
Moderator | 6445
+
0
-

ukaz cely kod. kdyz zavolas sendResponse, tak se sablona jiz nehleda. takze asi neco delas spatne

abc
Člen | 92
+
-2
-

@czechvar tohle není úplně správně ale normálně funguje:

$this->getHttpResponse()->setCode(200);
$this->getHttpResponse()->setContentType('x-www-form-urlencoded','UTF-8');
$this->getHttpResponse()->setHeader('code',0);
$this->getHttpResponse()->setHeader('message','OK');
echo "code=0&message=OK	";
exit;
czechvar
Člen | 3
+
0
-

diky za rady uz jsem to rozjel :)

chyba byla samozrejme u me TextResponse stacila ;)
kod jsem ale v try + catch bloku a to zpusobovalo volani latte sablony

jeste jednou dik

CZechBoY
Člen | 3608
+
0
-

Asi bych si radši udělal vlastní response a potom encodoval payload podle potřeby. Ono budeš chtít přejít z toho encoded formátu na json a budeš to muset přepisovat na x místech (pokud to neuděláš nějakou šikovnější cestou samozřejmě).

Editoval CZechBoY (27. 6. 2017 17:12)