RETS IQ для МРИС RETS

Я использую сайт JSP для получения данных MLS из MRIS RETS с использованием RETSIQ.

31 марта 2015 года он работал нормально. И теперь он не получает данные с сервера RETS.

Сообщение об ошибке, которое я получаю,

com.bigllc.retsiq.simpleclient.RETSClientException: поисковый запрос не выполнен — HTTP-сервер вернулся с кодом 500

Это происходит, когда линия,

retsSession.search(path, query, null, 1, 0, handler);

казнен


person siva prasanna    schedule 03.04.2015    source источник


Ответы (2)


Когда вы захватите поток ответов и сохраните его в файл или просмотрите в браузере, вы, вероятно, обнаружите, что получаете страницу с ошибкой сервера HTTP 500, и, кроме того, она сообщит вам, что вы делаете что-то, что, как они утверждают, является « Отравление печеньем».

Эта страница с ошибкой содержит адрес электронной почты, по которому вы можете связаться со службой технической поддержки RETS, и я предлагаю вам сделать это немедленно.

Проблема сводится к тому, как Apache HttpClient 3.x обрабатывает файлы cookie. retsIQ использует версию 3.x, и по умолчанию она совместима с RFC 2109, что согласуется со спецификацией RETS, начиная с версии 1.7.

MRIS не соответствует RFC 2109. В разговоре со своей поддержкой они цитируют RFC 6265, который является самым последним RFC по файлам cookie. Однако в RETS 1.7–1.8 очень четко сказано: «Клиент ДОЛЖЕН реализовать обработку файлов cookie, как указано в RFC 2109». Что еще хуже, они рассматривают соответствие RFC 2109 как отравление файлов cookie.

Ваша дилемма заключается в том, что retsIQ скрывает API, необходимый для изменения CookiePolicy на CoookiePolicy.NETSCAPE или CookiePolicy.BROWSER_COMPATIBILITY.

У вас есть три варианта (в порядке осуществимости и вашей способности контролировать результат):

  1. Измените свое приложение, чтобы использовать libRETS.
  2. Используйте отражение для перехвата/изменения HttpState HttpClient для изменения CookiePolicy.
  3. Подождите, пока MRIS перестанет утверждать, что файлы cookie, соответствующие RFC 2109, имеют неверный формат.
person rbellamy    schedule 05.04.2015
comment
Я не понимаю, что вы подразумеваете под использованием отражения для перехвата/изменения HttpState HttpClient для изменения CookiePolicy. - person siva prasanna; 06.04.2015
comment
В любом случае спасибо за ваш ответ. Просто хотел бы знать, что я могу сделать сейчас. - person siva prasanna; 06.04.2015
comment
@sivaprasanna, вы можете использовать отражение, чтобы перехватить вызов метода или получить доступ к тому, что в противном случае было бы закрытым членом. Проверьте этот ответ: stackoverflow.com/questions/1196192/ - person rbellamy; 07.04.2015
comment
Знаете ли вы, какие изменения должны быть сделаны с файлом cookie. Работали ли вы над этим раньше и есть ли у вас рабочий пример кода. Спасибо. - person siva prasanna; 07.04.2015
comment
@sivaprasanna мне совершенно ясно, что вам следует внимательно присмотреться к libRETS. Он имеет привязки JAVA, и, поскольку он использует cURL для обработки HTTP, он не будет страдать от проблем, с которыми вы сталкиваетесь при использовании retsIQ. Я уже показывал вам два значения HttpClient 3.x CookiePolicy, которые, как я знаю, работают. Использование отражения для перехвата/изменения вызовов, внутренних для retsIQ, является сложным и подверженным ошибкам процессом, и вы, скорее всего, добьетесь успеха методом проб и ошибок, чем я, пытающийся провести вас через него здесь. Вы пытались связаться с Bridge Interactive (авторы retsIQ)? - person rbellamy; 07.04.2015
comment
retsIQ не дает никакого ответа по этому вопросу. если возможно, вы можете отправить мне пример кода libRETS в java (я искал и нашел только библиотеки C++). Мой почтовый идентификатор [email protected]. Спасибо. - person siva prasanna; 08.04.2015
comment
@sivaprasanna Краткое руководство для разработчиков libRETS (nationalassociationofrealtors.github.io/libRETS/documentation/) документация включает образцы кода для каждой из различных привязок swig (ruby, python, C#, java и т. д.). - person rbellamy; 12.04.2015
comment
Большое спасибо за ваше время и помощь. Я снова связался со службой поддержки MRIS, и мне ответили, что раньше в их библиотеке была проблема, и теперь они решили ее. - person siva prasanna; 13.04.2015

Спасибо всем за ваш ответ и поддержку.

Проблему решают сами сотрудники службы поддержки MRIS.

Проблема заключалась в том, что их сервер не принимал библиотеку RETSIQ, и теперь они это исправили.

person siva prasanna    schedule 13.04.2015