2

Apache Thrift 的问题在 android 中工作。

我正在使用 Apache Thrift。有一个PHP服务器。有一个 Java 客户端(简单 Java 项目)。一切正常。

当我在 Android 上创建客户端时,与服务器的连接是成功的。这些功能在服务器上处理,但在应用程序中我收到错误:

TTransportException: No more data available.

传输 - http。协议 - 二进制。

创建客户端的代码(在简单的java项目和android项目中也是如此):

TTransport transport = new THttpClient ("http://test.../PhpServer.php");
TProtocol protocol = new TBinaryProtocol (transport);
TestService.Client client = new TestService.Client (protocol);
transport.open ();
try {
    client.EchoI32 (4);
} Catch (SysException e) {
    e.printStackTrace ();
} Catch (TException e) {
    e.printStackTrace ();
}

日志猫:

09-09 14:43:07.107: W/System.err(31729): org.apache.thrift.transport.TTransportException: No more data available.
09-09 14:43:07.107: W/System.err(31729):  at org.apache.thrift.transport.THttpClient.read(THttpClient.java:190)
09-09 14:43:07.107: W/System.err(31729):  at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
09-09 14:43:07.107: W/System.err(31729):  at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:359)
09-09 14:43:07.107: W/System.err(31729):  at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:278)
09-09 14:43:07.107: W/System.err(31729):  at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:185)
09-09 14:43:07.107: W/System.err(31729):  at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)
09-09 14:43:07.107: W/System.err(31729):  at com.test.protocol.TestService$Client.recv_EchoI32(TestService.java:912)
4

0 回答 0