使用HTTPS的Fopen Url

时间:2014-06-29 08:20:11

标签: php http-post

我正在尝试使用HTTPS向网址发送帖子请求,但我一直收到错误。

这是我的代码:

function do_post_request($data, $optional_headers = null)   {
    $params = array('http' => array(
            'method' => 'POST',
            'content' => http_build_query($data)
            ));


    $url = 'https://url';

    $ctx = stream_context_create($params);

    $fp = @fopen($url, 'rb', false, $ctx); 

    fpassthru($fp);
    if (!$fp) {<--- falls here
        throw new Exception("Problem with $url, $php_errormsg");
    }
    $response = @stream_get_contents($fp);

    if ($response === false) {
        throw new Exception("Problem reading data from $url, $php_errormsg");
    }
    return array(substr(trim(strip_tags($response)),0,3), trim(strip_tags($response)));
}

我得到的错误是:

Fatal error: Uncaught exception 'Exception' with message 'Problem with https://gateWay.pelecard.biz/PayProcess/English, ' in C:\PelecardProjects\aspsite\Post\PHP\PayEng.php:103 Stack trace: #0 C:\PelecardProjects\aspsite\Post\PHP\PayEng.php(83): do_post_request(Array) #1 {main}

我读到某个地方我需要启用php OpenSSL扩展吗?

1 个答案:

答案 0 :(得分:0)

解决了,我的https配置不好。

执行了以下步骤

1.将php.ini-production重命名为php.ini(在php文件夹中)

2.编辑php.ini并取消注释extension_dir = ext。

3.uncomment extension = php_openssl.dll。

4.将libeay32.dll和ssleay32.dll添加到C:\ WINDOWS \ system32 \ inetsrv