Jak na vzdálený Http request
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Martin Mates
- Člen | 179
Zdravím. Píšu formulář, který by měl zkontrolovat zadanou hodnotu přes webovou službu. Ta vrací XML s výsledkem. Začal jsem psát vlastní validátor:
<?php
class CustomValidators {
/**
* Pravidlo pro kontrolu vloženého kódu
* @return bool
*/
public static function correctCode(TextInput $code) {
$request = new HttpRequest('http://neco.cz/', HttpRequest::METH_GET);
$request->addQueryData(array('kod' => '00000016'));
try {
$request->send();
if ($request->getResponseCode() == 200) {
}
} catch (HttpException $ex) {
}
return $return;
}
?>
Tohle nefunguje, protože HttpRequest se jmenuje i třída v Nette, která podle mě zapouzdřuje aktuální Request a neumí vytvořit nový.
Jak byste na to šli? Napadlo mě použít curl nebo fopen. Ale nepřijde mi to jako čisté řešení. Co vy na to? Možná jsem úplně na scestí.
Díky!
- Ondřej Mirtes
- Člen | 1536
Pokud máš na serveru nainstalované rozšíření HTTP, tak se divím, že se to dosud s Nette netluče (právě kvůli třídě HttpRequest). Použij prefixovanou verzi frameworku (všechny třídy v něm začínají na N).