PHP-无法通过PHRETS连接到RETS

PHP-无法通过PHRETS连接到RETS,php,curl,rets,phrets,Php,Curl,Rets,Phrets,我试图通过PHP使用我从这里下载的短语获取我的所有MLS列表: 我使用此示例将我的列表下载为csv格式: 我从我的MLS板上获得了RETS URL、用户名和密码,但我仍然无法连接 在此处调用PHRETS库时,我的代码返回false: require_once("phrets.php"); // start rets connection $rets = new phRETS; echo "+ Connecting to {$rets_login_url} as {$rets_username

我试图通过PHP使用我从这里下载的短语获取我的所有MLS列表:

我使用此示例将我的列表下载为csv格式:

我从我的MLS板上获得了RETS URL、用户名和密码,但我仍然无法连接

在此处调用PHRETS库时,我的代码返回false:

require_once("phrets.php");

// start rets connection
$rets = new phRETS;

echo "+ Connecting to {$rets_login_url} as {$rets_username}<br>\n";
$connect = $rets->Connect($rets_login_url, $rets_username, $rets_password);

if ($connect) {
        echo "  + Connected<br>\n";
}
else {
        echo "  + Not connected:<br>\n";
        print_r($rets->Error());
        exit;
}
当我查看我的RETSRequest方法时,它在这里返回false,因为响应代码是0而不是200

if ($response_code != 200) {
            $this->set_error_info("http", $response_code, $response_body);
            return false;
        }
这就是它试图连接的地方:

if ($this->ua_auth == true) {
            $session_id_to_calculate_with = "";

            // calculate RETS-UA-Authorization header
            $ua_a1 = md5($this->static_headers['User-Agent'] .':'. $this->ua_pwd);
            $session_id_to_calculate_with = ($this->use_interealty_ua_auth == true) ? "" : $this->session_id;
            $ua_dig_resp = md5(trim($ua_a1) .':'. trim($this->request_id) .':'. trim($session_id_to_calculate_with) .':'. trim($this->static_headers['RETS-Version']));
            $request_headers .= "RETS-UA-Authorization: Digest {$ua_dig_resp}\r\n";
        }

        $this->last_request_url = $request_url;
        curl_setopt($this->ch, CURLOPT_URL, $request_url);

        curl_setopt($this->ch, CURLOPT_HTTPHEADER, array(trim($request_headers)));
        // do it
        $response_body = curl_exec($this->ch);
        $response_code = curl_getinfo($this->ch, CURLINFO_HTTP_CODE);
为什么我不能连接

我可以通过url、用户名和密码登录。我真的需要以CSV格式获取我的列表

请帮忙

我的服务器上安装了curl,我使用以下方法进行了检查:


响应代码0通常表示您的服务器无法打开与服务器的连接,可能是由于您和他们之间的防火墙问题。一些RETS服务器仍然在端口6103上运行,因此如果您的服务器托管公司等阻止在该端口上打开出站连接,这可能是您看到的问题的原因


我建议您在没有任何连接限制的其他服务器或计算机上尝试代码示例。如果您的本地环境具备PHRETS运行所需的条件,您还可以尝试验证所提供的凭据是否有效。

响应代码0通常表示您的服务器无法打开与服务器的连接,这可能是由于您和他们之间的防火墙问题。一些RETS服务器仍然在端口6103上运行,因此如果您的服务器托管公司等阻止在该端口上打开出站连接,这可能是您看到的问题的原因


我建议您在没有任何连接限制的其他服务器或计算机上尝试代码示例。您还可以尝试验证您所获得的凭据是否有效,前提是您的本地环境具备运行PHRETS所需的条件。

troydavisson的回答补充道

您可以包含以下额外的代码行,以获取连接日志以检查问题

// start rets connection
$rets = new phRETS;
$rets->SetParam('debug_mode', true);//extra line of code to get log

您将在rets_debug.txt文件中获得完整日志

补充troydavisson的答案

您可以包含以下额外的代码行,以获取连接日志以检查问题

// start rets connection
$rets = new phRETS;
$rets->SetParam('debug_mode', true);//extra line of code to get log

您将在rets_debug.txt文件中获得完整日志

为什么要从dangodev的Github下载PHRETS库?在此处使用官方短语Github:。也要遵循那里的文档。另外,PHRETS有两个分支:1.x和2.0。每一个都有不同的文档。为什么要从dangodev的Github下载PHRETS库?在此处使用官方短语Github:。也要遵循那里的文档。另外,PHRETS有两个分支:1.x和2.0。每种类型都有不同的文档。