简体   繁体   中英

how to make https request using php Http_Request2()

i want to make a https request using pear http_request2($url) class. i am able to make http request but not https. and the website facilitate both http and https. No prob with server responding to https.

    require 'HTTP/Request2.php';
    $url = 'https://collegedb2.ferryfair.com';
    $r = new Http_Request2($url);
    $r->setMethod(HTTP_Request2::METHOD_POST);
    try {
        $response = $r->send();
    } catch (Exception $exc) {
        $es = $exc->getTraceAsString();
        $ets=$exc->__toString();
        $egc=$exc->getCode();
        $egl=$exc->getLine();
        $egm=$exc->getMessage();
        $egt=$exc->getTrace();
        $response = null;
    }
    $page = $response->getBody();
    echo $page;

this is the error msg:

$egm=(string) Unable to connect to ssl://collegedb2.ferryfair.com:443. Error: stream_socket_client(): unable to connect to ssl://collegedb2.ferryfair.com:443 (Unknown error)

The comment to disable certificate verification was the key for me.

$request = new HTTP_Request2('https://someserver.com/somepath/something',
    HTTP_Request2::METHOD_POST);

$request->setConfig(array(
    'ssl_verify_peer'   => FALSE,
    'ssl_verify_host'   => FALSE
));

I experienced this problem. The fix (for me) was to use 'curl' as the adapter, for example:

$request = new Http_Request2('https://whatever');
$request->setAdapter('curl');
$response = $request->send();

See also the "SSL parameters" section on http://pear.php.net/manual/en/package.http.http-request2.config.php which says

Peer verification is likely to fail if you don't explicitly provide ssl_cafile and/or ssl_capath, especially with Socket adapter.

Presumably curl knows where to find a local CA file to trust.

(PHP 5.4.38 with curl).

HTTP_Request2 is absolutely able to make HTTPS requests. There is probably a deeper error, eg a custom SSL certificate that brings problems.

Install Wireshark and check which error you actually get with it. Post that back.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM