如何使用 HttpClient 发送 GWT-RPC 请求?

Posted

技术标签:

【中文标题】如何使用 HttpClient 发送 GWT-RPC 请求?【英文标题】:How can I send a GWT-RPC request with HttpClient? 【发布时间】:2011-09-19 15:06:41 【问题描述】:

我正在使用 Apache HTTPClient API 来发送 HTTPRequest,到目前为止,它可以处理标准请求。现在我想发送一个 GWT-RPC 请求并显示响应,但我总是从 GWT-RPC 服务器收到以下错误:

 //EX[2,1,"com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException/3936916533","This application is out of date, please click the refresh button on your browser. ( Malformed or old RPC message received - expecting version 5 )"],0,5]

实际上,我必须在请求中发送以下数据:

5|0|5|http://172.16.103.244:38081/kunagi/scrum.ScrumGwtApplication/|6E611C647A0C98D5A31A2506E16D81D6|scrum.client.ScrumService|startConversation|I|1|2|3|4|1|5|-1|

但我不知道怎么做。

当我从 FireBug 中检索请求代码时,我在 post 区域中找到了上述数据作为来源。

【问题讨论】:

IIRC,GWTTestCase 使用 HTTPClient 进行 RPC 调用。你可以看看它的实现并找出答案。 如果您想更轻松地开发应用程序,您应该考虑发送数据的文本表示形式(即:JSON 或 XML)。 【参考方案1】:

看看gwt-syncproxy 项目。它完全符合您的要求,从 Java 代码中伪造 RCP 调用。如果您不想依赖 gwt-syncproxy 的项目,您可以查看它的实现并了解如何创建有效请求。

【讨论】:

以上是关于如何使用 HttpClient 发送 GWT-RPC 请求?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 HttpClient 从特定 IP 地址发送请求? C#

如何使用 HttpClient 将哈希值作为标头发送? [复制]

如何使用 HttpClient 发送 GWT-RPC 请求?

如何使用 HttpClient 将带有 JSON 的 DELETE 发送到 REST API

如何使用 HttpClient 在 GET 请求正文中发送内容?

如何使用HttpClient