在GatewayWorker怎样发送http请求?

尚山

我是PHP小白,有没有人可以指点一下php怎样发送http请求?

我现在的需求是 在onWebSocketConnect拿到token时,向我的服务器发送一个请求去校验这个token的合法性。但是这个请求我不会写,有人可以帮我一下吗。

以下代码是我现在的请求方法,但是他会报错

            $url = "https://baidu.com";
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL,$url);  //设置访问的url地址
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//不输出内容
            $result =  curl_exec($ch);
            curl_close ($ch);
          $result = curl_get_https($url);
          var_dump($result);

我这样写,他会报错,有人可以指点我一下吗,谢谢

截图

1573 2 0
2个回答

admin

看报错是php-cli下没有安装php-ext-curl 拓展,PHP大部分场景应用需要安装的基础拓展,如果并发超过1024需要安装pecl-event

php8-cli php8-redis php8-pcntl php8-posix php8-iconv php8-pdo php8-gd php8-pdo_mysql \
      php8-pecl-event  php8-curl php8-json php8-xml  php8-openssl   php8-mysqli php8-common php8-ctype php8-phar php8-mbstring
  • 尚山 2022-04-21

    我没接触过php,现在就是下载了GatewayWorker包,业务逻辑都写好了,现在就是差一个token校验,请问这个php-ext-curl这个拓展要在哪里下载安装?感谢感谢

  • admin 2022-04-21

    没有接触过php也没关系,因为这本来就是 运维的事情,让运维装下 php-curl拓展 ,可参考:https://blog.csdn.net/have_a_cat/article/details/118018561

  • admin 2022-04-21

    posix也装下

  • 尚山 2022-04-21

    是不是cmd打印出来,有php-ext-curl、posix这些就算安装成功了?

  • admin 2022-04-21

    php -m 自己对比下

北月
$data = [
        'var1' => 'some content',
        'var2' => 'doh',
    ];
$post_data = http_build_query(data);
// 如果发送的数据是JSON,用这个
//$post_data = json_encode(data);
$opts = [
    'http' =>
        [
            'method'  => 'POST',
            // 发送普通
            'header'  => 'Content-Type: application/x-www-form-urlencoded',
            'content' => $post_data
            // 如果发送的数据是JSON,用这个
            // 'header'  => 'Content-type: application/json',
            // 'content' => $post_data;
        ],
        // 如果目标地址是HTTPS,可以加上这个参数
        'ssl'=>[
            'verify_peer'  => false,
            'verify_peer_name'  => false,
        ],
];

$context  = stream_context_create($opts);

$result = file_get_contents('https://your.domain/uri', false, $context);
  • 尚山 2022-04-21

    也是不行,我这应该是没安装拓展,报错了

  • 北月 2022-04-21

    这个函数是php自带的,哪里不行,你得截图出来

  • 尚山 2022-04-21

    报了这个错,http就可以请求得到,https不可以
    file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in xxxxEvents.php

  • 北月 2022-04-21

    请安装php_openssl扩展

年代过于久远,无法发表回答
×
🔝