Nastaveni body pro HttpResponse
- czechvar
- Člen | 3
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)
- David Matějka
- Moderator | 6445
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
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
ukaz cely kod. kdyz zavolas sendResponse, tak se sablona jiz nehleda. takze asi neco delas spatne
- abc
- Člen | 92
@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;
- CZechBoY
- Člen | 3608
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)