php cURL无法连接到端口80

fdx2calv  于 2022-11-28  发布在  PHP
关注(0)|答案(2)|浏览(192)

我在我的PHP脚本中使用cURL来测试我的API。当我尝试使用我的函数来获取数据时,它抛出了一个错误
错误:无法连接到alenke。测试端口80:连接被拒绝
但当我在终端执行时

curl --ipv4 -v "http://alenke.test/wp-json/chatbot/v1/brand";

它给予了我

`Trying 127.0.0.1...
    * TCP_NODELAY set
    * Connected to alenke.test (127.0.0.1) port 80 (#0)
    GET /wp-json/chatbot/v1/brand HTTP/1.1
    Host: alenke.test
    User-Agent: curl/7.54.0
    Accept:
    HTTP/1.1 200 OK
    Server: nginx/1.15.7
    Date: Sun, 01 Sep 2019 16:47:36 GMT
    Content-Type: application/json; charset=UTF-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Vary: Accept-Encoding
    X-Powered-By: PHP/7.3.7
    X-Robots-Tag: noindex
    Link: <http://alenke.test/wp-json/>; rel="https://api.w.org/" 
X-Content-Type-Options: nosniff Access-Control-Expose-Headers: X-WP-Total, X-WP-TotalPages Access-Control-Allow-Headers: Authorization, Content-Type Allow: GET `

并给予我所有的数据,我需要,但何时执行这个php脚本

function callAPI($method, $url, $data){
        $curl = curl_init();
        switch ($method){
            case "POST":
                curl_setopt($curl, CURLOPT_POST, 1);
                if ($data)
                    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
                break;
            case "PUT":
                curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
                if ($data)
                    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
                break;
            default:
                if ($data)
                    $url = sprintf("%s?%s", $url, http_build_query($data));
        }
        // OPTIONS:
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json',
        ));
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
        curl_setopt($curl, CURLOPT_USERPWD, "admin:admin");
        // EXECUTE:
        $result = curl_exec($curl);
        if(!$result){
            if (curl_errno($curl)) {
                echo 'Error: ' . curl_error($curl);      
                echo'//;
                echo print_r(curl_getinfo($curl));   
                echo'//;
                die("Connection Failure..?");
            }
        }
        curl_close($curl);
        return $result;
    }

它会显示此错误
错误:无法连接到alenke。测试端口80:连接被拒绝

xdnvmnnf

xdnvmnnf1#

我已经将您的代码复制粘贴到了我电脑上的一个文件(test.php)中,用一个<?php .. ?>块将其包围起来,并在函数后面添加了一个如下所示的调用:$res=callAPI('GET', 'http://myserver/', ''); echo $res;然后通过php test.php在命令行中启动脚本,并得到预期的结果(我的服务器的index.html文件)。
所以不管你在做什么都可以。试着先在命令行测试一下,看看是否安装/启用了必要的模块。如果可以,试着修复你的Web服务器的配置文件。如果你需要更多的帮助,请添加一些关于你的系统的信息(Web服务器、版本、操作系统和任何相关内容)。系统管理员倾向于禁用某些功能(包括curl),也许你的默认配置是基于此。

lymnna71

lymnna712#

我会建议你检查你的防火墙,并检查如果域什么ip正在解析.

telnet domain 80
telnet ipserver 80

相关问题