Symfony2 : send a HTTP Request
html, http, httprequest, php, symfony
Solution
EDIT: I made a GremoBuzzBundle for Buzz browser. It's similar to SensioBuzzBundle but it has some nice configuration options.
I would suggest to use Buzz browser and dependency injection. Buzz is a wrapper around cURL or file_get_contents. Edit your `deps` file adding these lines:
[Buzz]
git=https://github.com/kriswallsmith/Buzz.git
target=/buzz
Then install vendors to actually download the library:
php bin/vendors install
Then add two services (`src/YourCompany/YourBundle/Resources/config/services.yml`):
# cURL client for Buzz
buzz.client.curl:
class: Buzz\Client\Curl
public: false
calls:
- [setVerifyPeer, [false]]
# Buzz browser
buzz.browser:
class: Buzz\Browser
arguments: ['@buzz.client.curl']
The first service is the client (i prefer cURL over file_get_contents), the latter is the browser itself. The last step is to add one line of code in the autoloader (`app/autoload.php`):
$loader->registerNamespaces(array(
'Buzz' => __DIR__.'/../vendor/buzz/lib',
));
Then you can get the service and user the browser in your controller code:
$browser = $this->get('buzz.browser');
$response = $browser->get('http://www.google.com');
Problem
I am trying to make a HTTP Request from one of my controller to contact another URL, the goal being to contact another URL, and to simply print the HTML answer in my page. I tried : ``` $r = new Request(); $r->create('http://www.google.com', 'GET'); return $this->render(...mytemplate..., array('name' => $r->getContent()); ``` My template is simply printing the variable "name". Now when I do that, nothing is returned. It seems to me that the request is never sent, which is why nothing is returned. My question is : how do I send the request and get the content of the response? Thanks in advance.