PHP's cURL: How to connect over HTTPS?

前端 未结 5 1196
余生分开走
余生分开走 2021-02-15 12:23

I need to do a simple GET request to EC2 Query API with regular URL encoded query string. The protocol is HTTPS. How would I send the request with the help of PHP\'s cURL.

5条回答
  •  终归单人心
    2021-02-15 13:12

    Sending a request via curl, to an HTTPS URL, is not that hard by itself, in terms of PHP code.

    Something like this should do perfectly fine (I just tried this portion of code on my machine, Windows, PHP 5.3) :

    $url = 'https://.../...';
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  2);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($ch);
    curl_close($ch);
    
    echo $data;
    

    And it outputs the result fine : the same thing I get in my browser when trying to access the https:// URL ; except for the CSS, of course.


    You might want to take a look at the manual page of the curl_setopt function : there are a lot of options, and some of those might be useful, in your specific case :-)

    Here, I used CURLOPT_SSL_VERIFYPEER and CURLOPT_SSL_VERIFYHOST ; not sure you'll need those with Amazon, but I had to use them, else this portion of code didn't work -- but that might be related to the fact that the certificate I'm using is self-signed... Try with and without those, and you'll quickly find out if you need them.

提交回复
热议问题