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
+
0
-

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
+
+1
-

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]
Martin Mates
Člen | 179
+
0
-

To vypadá moc dobře! Díky.