【问题标题】:Making GWT RPC calls to an external service for which you don't have code对您没有代码的外部服务进行 GWT RPC 调用
【发布时间】:2010-04-19 14:38:01
【问题描述】:

我想制作一个小程序,从支持 GWT 的第 3 方网站抓取信息。是否可以以某种方式直接调用此 RPC?我需要什么逆向工程来做到这一点(即希望不是整个低级协议)。

我希望我能以某种方式从我自己的服务器端 GWT 或 Servlet 应用程序中调用它。

【问题讨论】:

    标签: gwt reverse-engineering rpc


    【解决方案1】:

    有可能...但是您必须通过他们的代码才能了解序列化/反序列化的工作原理。

    感兴趣的类别是

    1. RPC.java
    2. ClientSerializationStreamWriter -> ServerSerializationStreamReader 是发出 GWT 请求所涉及的类。
    3. ServerSerializationStreamWriter -> ClientSerializationStreamReader 是创建和解释响应所涉及的类。

    我正在尝试与学术项目类似的事情,如果我能破译这些课程,我会添加更多信息。

    【讨论】:

    • 但他无权访问他们的代码。他只是试图针对在其服务器上运行的服务发出 GWT-RPC 请求。
    • Jason,这将是通用 GWT 代码。先生,听起来不错,请继续研究。
    • Sri,你的这个项目有进展吗?
    • 它没有像我预期的那样进步,但我发现的任何东西都可以在这里找到 - code.google.com/p/degwt
    【解决方案2】:

    为了安全起见,我很确定 GWT 使得跨站点请求变得困难。

    您想出的任何解决方案都可能很老套(并且对未来的变化不灵活),而且由于您可能是在未经相关网站同意的情况下这样做的,因此可能是个坏主意开始吧。

    是否有某些原因您不能要求网站使用 REST API 发布他们的数据?

    【讨论】:

    • 这是针对 Google Market 上的开发者仪表板的。他们不介意我刮掉它,但他们没有时间制作 REST API。该站点没有 robots.txt,因此抓取它应该是绝对可以的(否则搜索引擎会遇到麻烦)。
    • 抓取和尝试向其服务发出 GWT-RPC 请求之间存在很大差异。出于安全原因,GWT 使得公开 GWT-RPC 服务变得困难。当(不是如果)他们改变这些调用的 API 时,你的应用程序就会崩溃。这可能是可能的,但这不是一个好主意。
    • 对不起,我不同意有很大的不同。谷歌蜘蛛通常会向各种 CGI 后端提交自动查询,这就是它们抓取深层网络的方式。 glinden.blogspot.com/2007/03/google-and-deep-web.html 请指出一些具体的消息来源,说不要联系 GWT-RPC。那样,通过 Firefox 上的 GreaseMonkey 总是可以进行抓取。这只是一个更简单的方法。
    猜你喜欢
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多