Question

This is following curl code

    $ch = curl_init(); //initiate the curl session
    curl_setopt($ch, CURLOPT_URL, $url); //set to url to post to
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // tell curl to return data in a variable
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlrequest); // post the xml
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); // set timeout in seconds
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    $result['xml'] = curl_exec($ch);

How do I change the following code to use drupal_http_request()?

Was it helpful?

Solution

Seeing how drupal_http_request() is used in _xmlrpc(), something like this should do it.

// The path to send the request
$url = "http://example.com/API_PATH_HERE";
// Example of valid xml code;
$xmlrequest = "<showId>0</showId><tag>123</tag>";

$response = drupal_http_request($url, array(
  'headers' => array('Content-Type' => 'text/xml'),
  'data' => $xmlrequest,
  'method' => 'POST',
  'timeout' => 10
));
// If there is no error return data
if (empty($response->error)) {
  $result['xml'] = $response->data;
}
Licensed under: CC-BY-SA with attribution
Not affiliated with drupal.stackexchange
scroll top