1

我正在使用 JSP 站点使用 RETSIQ 从 MRIS RETS 检索 MLS 数据

它在 2015 年 3 月 31 日仍然运行良好。现在它没有从 RETS 服务器检索数据。

我得到的错误信息是,

com.bigllc.retsiq.simpleclient.RETSClientException:搜索请求失败 - HTTP 服务器返回代码 500

当线路发生这种情况时,

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

被执行

4

2 回答 2

0

当您捕获响应流并将其保存到文件或在浏览器中查看时,您可能会发现您正在获得 HTTP 500 服务器错误页面,并且它会进一步告诉您您正在做他们声称的事情“饼干中毒。”

该错误页面包含一个电子邮件地址,您可以在其中联系他们的 RETS 技术支持,我建议您立即联系。

问题归结为 Apache HttpClient 3.x 如何处理 cookie。retsIQ 使用 3.x 版本,默认是符合 RFC 2109 的 - 这与自 1.7 以来的 RETS 规范一致。

MRIS 不符合 RFC 2109。在与他们的支持交谈时,他们引用了 RFC 6265,这是关于 Cookie 的最新 RFC。但是,RETS 1.7 到 1.8 非常明确“客户端必须实现 RFC 2109 中指定的 cookie 处理”。更糟糕的是,他们将 RFC 2109 合规性视为 cookie 中毒。

您的困境是 retsIQ 隐藏了您需要将 CookiePolicy 修改为CoookiePolicy.NETSCAPE或的 API CookiePolicy.BROWSER_COMPATIBILITY

您有三个选择(按照可行性和您控制结果的能力排序):

  1. 更改您的应用程序以使用 libRETS。
  2. 使用反射拦截/修改HttpClient的HttpState来修改CookiePolicy。
  3. 等待 MRIS 停止声称符合 RFC 2109 的 cookie 格式错误。
于 2015-04-05T17:03:43.100 回答
0

谢谢大家的回复和支持。

问题由 MRIS 支持人员自己解决。

问题在于他们的服务器不接受 RETSIQ 库,现在他们已经修复了它。

于 2015-04-13T05:14:00.033 回答