Как исправить ошибку «При анализе сообщения протокола ввод неожиданно завершился в середине поля»JAVA

Программисты JAVA общаются здесь
Anonymous
Как исправить ошибку «При анализе сообщения протокола ввод неожиданно завершился в середине поля»

Сообщение Anonymous »

Получение InvalidProtocolBufferException: при анализе сообщения протокола ввод неожиданно завершился в середине поля. ошибка при анализе Protobuf

Не знаю, почему синтаксический анализ не удался, хотя я вижу результат, если вызываю метод response.getContentAsString() для объекта ответа.

мой файл Proto:

syntax = "proto2";
package com.test.protocol;

option java_package = "com.test.protocol.v1";
option java_outer_classname = "Test1";

message Test2 {
required int64 id = 1;
required string value = 2
}


Я написал API для возврата ответа Proto, который выглядит следующим образом

final Test2.Builder builder = TEST2.newBuilder();
builder.setId(1);
builder.setValue("1");
return builder.build();


Мой API вернет приведенный ниже результат

{"id": 1,"value": "1"}


Я пытаюсь вызвать API и проанализировать его обратно в Test2, как показано ниже

import com.test.protocol.v1.Test1.Test2;

final Test2 result = Test2.parseFrom(response.getContentAsByteArray());


получаю ошибку на предыдущем шаге. Если я отлаживаю и пытаюсь напечатать ответ.getContentAsString(), я получаю правильный вывод, как показано ниже, но синтаксический анализ не удался.

{"id": 1,"value": "1"}

Вернуться в «JAVA»