2017-07-09 10 views
1
私はすべての私のMLSは、私はここからダウンロードPHRETS使用してPHPを経て上場取得しようとしています

経由RETSに接続します。PHP - カントはPHRETS

​​

を、私はに私のリストをダウンロードするには、この例を使用csv形式:

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

私は私の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; 
} 

I後藤ライブラリへと方法の接続を見て、そのコードはここにfalseを返した場合:

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

そして私を私のRETSRequestメソッドを見ると、レスポンスコードが0でなく、レスポンスコードが0であるため、ここではfalseを返します。

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、ユーザ名、パスワードを使用してhttp://retsmd.comでログインすることができました。私は本当にCSVの形式で私のリストを取得する必要があります。

私は私のサーバーにカールインストールされていない

を助けてください、私はこの方法でチェック:

Check to see if cURL is installed locally?

+1

なぜdangodevのGithubからPHRETSライブラリをダウンロードしていますか?公式のPHRETS Githubをhttps://github.com/troydavisson/PHRETSでご利用ください。そこの文書も守ってください。また、PHRETS:1.xと2.0の2つのブランチがあります。また、それぞれに異なる文書があります。 –

答えて

3

0の応答コードは通常、サーバーは、との接続を開くことができなかったことを示していますおそらくあなたと彼らの間のファイアウォールの問題のためにサーバー。一部のRETSサーバーはポート6103上で実行されているため、サーバー(ホスティング会社など)がそのポートでアウトバウンド接続を開けないようにすると、それが原因となっている可能性があります。

接続の制限のない別のサーバーまたはコンピューターからコード例を試すことをおすすめします。指定した資格情報が動作することを確認する方法として、https://retsmd.com/authを試すこともできます(ローカル環境でPHRETSを実行するために必要なものがあると仮定します)。 troydavissonの答えに追加

1

あなたが問題をチェックするための接続のログを取得するために次のコードの余分な行を含めることができます。

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

rets_debug.txtファイルに完全にログインします。