REST komunikace curl nebo Nette\Http\Request či Response
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Martin Mates
- Člen | 179
Komunikuji s REST webovou službou a řeším to přes curl. Problém nastane ve chvíli, kdy potřebuji hodnoty jednotlivých hlaviček v těle odpovědi. Zdá se, že na to není žádný rozumný wrapper a pracovat s tím jako se stringem mi přijde jako nošení dříví do lesa. Např. z této odpovědi potřebuji JSESSIONID případně nějaké custom hlavičky, které se tam mohou objevit:
* About to connect() to localhost port 8080 (#0)
* Trying 127.0.0.1... * connected
* Connected to localhost (127.0.0.1) port 8080 (#0)
> POST /Diplomka_maven/rest/similarity/ HTTP/1.1
Host: localhost:8080
Content-type: application/json
Accept: application/json
Content-Length: 835
< HTTP/1.1 200 OK
< X-Powered-By: Servlet/3.0 JSP/2.2 (GlassFish Server Open Source Edition 3.1.2.2 Java/Apple Inc./1.6)
< Server: GlassFish Server Open Source Edition 3.1.2.2
< Set-Cookie: JSESSIONID=48689503cbc910952ef6a255628e; Path=/Diplomka_maven; HttpOnly
< Content-Type: application/json
< Transfer-Encoding: chunked
< Date: Sun, 10 Mar 2013 13:39:05 GMT
<
* Connection #0 to host localhost left intact
* Closing connection #0
Dá se na to použít Nette\Http\Request a Nette\Http\Response nějak smostatně uvnitř presenteru? Pokud ano, tak jak? Jak byste na to šli nějak chytřě? Díky moc
- Filip Procházka
- Moderator | 4668
A proč né Kdyby/Curl ? :)
$request = new Kdyby\Curl\Request('http://localhost:8080/Diplomka_maven/rest/similarity/');
$request->headers['Accept'] = 'application/json';
$response = $request->post();
dump($response->headers);
dump($response->cookies); // [JSESSIONID: 48689503cbc910952ef6a255628e]