0

以下のメッセージのサーバー側での解析中に InvalidProtocolBufferException を取得しています

attribute {

 name: "attr1"

  value {
    type: BOOL

    nrOfElements: 1

    inner_value {

      theBoolean: false

    }

  }

}

false の代わりに true を送信すると、エラーは発生しません。

attribute {

  name: "attr1"

  value {

    type: BOOL 

    nrOfElements: 1

    inner_value {

      theBoolean: true

    }

  }

}

エラーの原因は何ですか?受信したエラーは次のとおりです。

com.google.protobuf.InvalidProtocolBufferException: プロトコル メッセージの解析中に、フィールドの途中で入力が予期せず終了しました。これは、入力が切り捨てられたか、埋め込まれたメッセージがそれ自体の長さを誤って報告したことを意味する可能性があります。

サーバー側で parseFrom() を呼び出した場所でエラーがスローされます。私を助けてください。

4

1 に答える 1

0

その解決..これが修正です。クライアント側: 最初にデータのサイズを送信してから、そのサイズのデータ​​を送信しています。サイズの値はサーバー側で使用されます。最後に文字列配列にバイト '0' があります(falseの場合)。したがって、送信しているサイズはデータサイズよりも小さくなっています。そのため、エラーが発生しています。

于 2013-07-23T14:43:25.467 に答える