到API的PHP套接字连接

到API的PHP套接字连接,php,web-services,sockets,Php,Web Services,Sockets,我正在尝试使用PHP套接字连接到API 我试过很多种方法,但都没用。我知道还有其他的答案,但没有一个是有效的。我真的做不到。我至少要试两天 以下是错误: php_网络_getaddresses:getaddrinfo失败:名称或服务未知 代码(套接字-不工作): 代码(Curl-它可以工作!): 我无法给您提供正确的URL,但URL使用的是Curl,因此它应该使用套接字 我通过以下方法解决了这个问题: public function getUsers(){ $path = "users/

我正在尝试使用PHP套接字连接到API

我试过很多种方法,但都没用。我知道还有其他的答案,但没有一个是有效的。我真的做不到。我至少要试两天

以下是错误:

php_网络_getaddresses:getaddrinfo失败:名称或服务未知

代码(套接字-不工作):

代码(Curl-它可以工作!):


我无法给您提供正确的URL,但URL使用的是Curl,因此它应该使用套接字

我通过以下方法解决了这个问题:

public function getUsers(){
    $path = "users/?accesstoken=c24f506fe265488435858925096bc4ad7ba0";
    $fp = fsockopen($this->url, 80, $errno, $errstr, 30);
    if (!$fp) {
        echo "$errstr ($errno)<br />\n";
    } else {
        $out = "GET /{$path} HTTP/1.1\r\n";
        $out .= "Host: {$this->url}\r\n";
        $out .= "Connection: Close\r\n\r\n";
        fwrite($fp, $out);
        while (!feof($fp)) {
            echo fgets($fp, 128);
        }
        fclose($fp);
    }
}
公共函数getUsers(){ $path=“users/?accesstoken=c24f506fe265488435858925096bc4ad7ba0”; $fp=fsockopen($this->url,80,$errno,$errstr,30); 如果(!$fp){ 回显“$errstr($errno)
\n”; }否则{ $out=“GET/{$path}HTTP/1.1\r\n”; $out.=“主机:{$this->url}\r\n”; $out.=“连接:关闭\r\n\r\n”; fwrite($fp,$out); 而(!feof($fp)){ echo fgets(fp,128美元); } fclose($fp); } }
我通过以下操作解决了这个问题:

public function getUsers(){
    $path = "users/?accesstoken=c24f506fe265488435858925096bc4ad7ba0";
    $fp = fsockopen($this->url, 80, $errno, $errstr, 30);
    if (!$fp) {
        echo "$errstr ($errno)<br />\n";
    } else {
        $out = "GET /{$path} HTTP/1.1\r\n";
        $out .= "Host: {$this->url}\r\n";
        $out .= "Connection: Close\r\n\r\n";
        fwrite($fp, $out);
        while (!feof($fp)) {
            echo fgets($fp, 128);
        }
        fclose($fp);
    }
}
公共函数getUsers(){ $path=“users/?accesstoken=c24f506fe265488435858925096bc4ad7ba0”; $fp=fsockopen($this->url,80,$errno,$errstr,30); 如果(!$fp){ 回显“$errstr($errno)
\n”; }否则{ $out=“GET/{$path}HTTP/1.1\r\n”; $out.=“主机:{$this->url}\r\n”; $out.=“连接:关闭\r\n\r\n”; fwrite($fp,$out); 而(!feof($fp)){ echo fgets(fp,128美元); } fclose($fp); } }
通过套接字连接到主机不是连接到URL

错误:
api.site.com.br/

错误:
http://api.site.com.br/

错误:
https//api.site.com.br/api/

右侧:
api.site.com.br


您可以连接到主机。这可以是域名或IP。这两个都没有斜杠。

通过套接字连接到主机不是连接到URL

错误:
api.site.com.br/

错误:
http://api.site.com.br/

错误:
https//api.site.com.br/api/

右侧:
api.site.com.br


您可以连接到主机。这可以是域名或IP。这两个都没有斜线。

这不是问题。这不是问题。
public function getUsers(){
    $path = "users/?accesstoken=c24f506fe265488435858925096bc4ad7ba0";
    $fp = fsockopen($this->url, 80, $errno, $errstr, 30);
    if (!$fp) {
        echo "$errstr ($errno)<br />\n";
    } else {
        $out = "GET /{$path} HTTP/1.1\r\n";
        $out .= "Host: {$this->url}\r\n";
        $out .= "Connection: Close\r\n\r\n";
        fwrite($fp, $out);
        while (!feof($fp)) {
            echo fgets($fp, 128);
        }
        fclose($fp);
    }
}