Authenticating HTTP Requests with PHP cURL
When building a REST web service client in PHP, cURL provides an effective method for making requests. However, if authentication is required, how can you use cURL to execute authenticated (HTTP Basic) requests?
To enable cURL authentication, employ the following line:
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
This sets the necessary header for basic authentication.
For added convenience, you may consider using tools like Zend's REST client or PEAR's wrapper. However, it's not overly complex to create your own implementation.
Here's a comprehensive code example that illustrates the full process:
$ch = curl_init($host); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', $additionalHeaders)); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $payloadName); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $return = curl_exec($ch); curl_close($ch);
This code initializes the cURL request, sets the required headers, and includes authentication credentials. It also specifies the timeout duration, indicates a POST request, and handles the return value.
The above is the detailed content of How to Authenticate HTTP Requests with PHP cURL?. For more information, please follow other related articles on the PHP Chinese website!