3

How can i call a web service from php

Finbarr
  • 31,350
  • 13
  • 63
  • 94
Warrior
  • 5,168
  • 12
  • 60
  • 87

3 Answers3

5

Use the curl function:

http://php.net/manual/en/book.curl.php

Assuming you are using a GET request to connect to a RESTful API:

$url = "http://the-api-you-want/?the-args=your-args&another-arg=another-arg"; 
$ch = curl_init(); // start CURL
curl_setopt($ch, CURLOPT_URL, $url); // set your URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // get the response as a variable
$json = curl_exec($ch); // connect and get your JSON response 
curl_close($ch);

You can then use PHP's json_decode on the response if that is what you want to do.

Another option would be using Drupal's drupal_http_request function http://api.drupal.org/api/function/drupal_http_request/6

Finbarr
  • 31,350
  • 13
  • 63
  • 94
  • Can u explain little bit more. I am new to CURL and i want to use json for data transfer – Warrior Apr 25 '10 at 10:00
  • Do you mean you are expecting to receive a JSON response, or you want to send JSON in your query? – Finbarr Apr 25 '10 at 10:03
  • I have a built in web service that contain all database functionality I want to use json for both sending and receving data to and from from the web service – Warrior Apr 25 '10 at 10:12
0

I would reccommend you to be more specific in your Question. Wich Type of Web Service do you mean?

If you are using Rest Webservices, i can recommend Zend_Rest_Client, that comes with the Zend Framework. I think the Zend Framework also provides Stuff for SOAP Services.

Paul Weber
  • 6,518
  • 3
  • 43
  • 52
0

Use curl or the Zend_Http_Client library from Zend Framework (You don't need the entire Zend Framework to use the library). If the service you are calling is sending a JSON response, then you'll have to parse it in PHP using json_decode.

Abhinav
  • 38,516
  • 9
  • 41
  • 49