PHP - не удается подключиться к RETS через PHRETS

Я пытаюсь получить весь свой список MLS через PHP, используя PHRETS, который я скачал отсюда:

https://github.com/dangodev/PHRETS-Example/blob/master/lib/phrets.php

и я использовал этот пример, чтобы загрузить свои списки в формате csv:

https://github.com/troydavisson/PHRETS/wiki/Connect,%20download%20listing%20data%20in%20CSV%20format,%20disconnect

Я получил URL-адрес RETS, имя пользователя и пароль от моей платы MLS, но я все еще не могу подключиться.

Мой код возвращает false при вызове библиотеки PHRETS здесь:

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;
}

Когда я иду в библиотеку и смотрю на метод Connect, этот код возвращает здесь false:

// make request to Login transaction
        $result =  $this->RETSRequest($this->capability_url['Login']);
        if (!$result) {
            return false;
        }

И когда я смотрю на свой метод 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);

Почему я не могу подключиться?

Мне удалось войти через http://retsmd.com с URL-адресом, именем пользователя и паролем. Мне очень нужно получить свои списки в формате CSV.

ПОЖАЛУЙСТА ПОМОГИ

У меня на сервере установлен curl, я проверял следующим методом:

Проверьте, установлен ли cURL локально?


person user979331    schedule 09.07.2017    source источник
comment
Почему вы загружаете библиотеку PHRETS с Github dangodev? Используйте официальный Github PHRETS здесь: github.com/troydavisson/PHRETS. Следуйте документации там же. Также есть 2 ветки PHRETS: 1.x и 2.0. И для каждого своя документация.   -  person Andrew Briggs    schedule 10.07.2017


Ответы (2)


Код ответа 0 обычно указывает, что вашему серверу не удалось установить соединение с сервером, вероятно, из-за проблем с брандмауэром между вами и ними. Некоторые серверы RETS все еще работают на порту 6103, поэтому, если ваш сервер (хостинговая компания и т. д.) запрещает открытие исходящих соединений на этом порту, это может быть причиной того, что вы видите.

Я бы рекомендовал попробовать ваш пример кода с другого сервера или компьютера, на котором нет ограничений на подключение. Вы также можете попробовать https://retsmd.com/auth, чтобы убедиться, что введенные вами учетные данные будет работать (при условии, что в вашей локальной среде есть все, что нужно для запуска PHRETS).

person troydavisson    schedule 16.08.2017

Добавляя к ответу Тройдависсона,

Вы можете включить следующую дополнительную строку кода, чтобы получить журнал вашего подключения для проверки проблемы.

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

Вы получите полный журнал в файле rets_debug.txt.

person V-T    schedule 13.12.2017