Какая версия GWT-RPC - это запрос?

У меня такой запрос, который выглядит как формат GWT-RPC:

R7 ~ "~ 61 ~ com.foo.Service" 14 ~ Methoda ~ D2 ~ "3 ~ F7E ~" ~ 3 ~ B0e Ecom.foo.data.BeanType ~ I116 ~ Lcom.foo.Parameter ~ I5 ~ "1 ~ Ь ~ Z0 ~ "1 ~ п ~ В ~" 1 ~ о ~ ~ Z1 "1 ~ р ~ Z1 ~" 1 ~ д ~ В ~"

Но это не соответствует описанному здесь протоколу:

Что это за протокол? Это действительно GWT-RPC или что-то еще (deRPC?)?

Заглядывая в исходный код gwt-2.5.1, я замечаю, что следующие пакеты могут генерировать такой формат:

  • com.google.gwt.rpc.client
  • com.google.gwt.rpc.server

Является ли это deRPC?

1 ответ

Основываясь на быстром просмотре классов deRPC в перечисленных вами пакетах, он действительно выглядит deRPC. Обратите внимание, что deRPC всегда отмечен как экспериментальный, и теперь он устарел, и вместо этого следует использовать RPC или RequestFactory.

Детали, которые, похоже, подтверждают это:

  • com.google.gwt.rpc.client.impl.SimplePayloadSink#RPC_SEPARATOR_CHAR - это константа, равная символу ~, который, как представляется, является разделителем между различными токенами в предоставленной вами строке образца.

  • И com.google.gwt.rpc.client.impl.SimplePayloadSink and com.google.gwt.rpc.server.SimplePayloadDecoder 'есть много комментариев, которые, как представляется, отображают тот же базовый формат, который вы видите там:

    • //"4~abcd в endVisit(StringValueCommand x, Context ctx) точно соответствуют несколько маркеров в строке образца - цитата, указывающая строку, INT, описывающий длину, ~ разделитель, то сама строка (этот матч оленьей кожи все, Я подозреваю, что вы удалили информацию об услуге и имя метода):

      • "3~F7e

      • "3~B0e

      • "1~b

    • Булевы все следуют за Z1 или Z0, как в вашей строке примера

licensed under cc by-sa 3.0 with attribution.