Я пытаюсь реализовать перехватчик для регистрации на серверах и клиентах GRPC. Я попытался использовать следующий код для прочтения всех клавишных значений из метаданных и преобразовать их в строковое представление, чтобы распечатать их на экран:
private String metadataToString(final Metadata metadata) {
if (metadata == null) {
return "";
}
var sb = new StringBuilder();
for (String key : metadata.keys())
{
var metadataKey = Metadata.Key.of(key, Metadata.ASCII_STRING_MARSHALLER);
sb.append(
String.format(
"%s: %s\n",
key,
metadata.get(metadataKey)));
}
return sb.toString();
}
< /code>
Я проверил его в клиентском перехватчике, чтобы войти в систему заголовков и трейлеров. Это работает нормально, если запрос GRPC успешно. И в этом случае приведенный выше код не выполняет следующее исключение: < /p>
java.lang.IllegalArgumentException: Invalid character ':' in key name ':status'
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:273)
at io.grpc.Metadata$Key.validateName(Metadata.java:754)
at io.grpc.Metadata$Key.(Metadata.java:762)
at io.grpc.Metadata$Key.(Metadata.java:671)
at io.grpc.Metadata$AsciiKey.(Metadata.java:971)
at io.grpc.Metadata$AsciiKey.(Metadata.java:966)
at io.grpc.Metadata$Key.of(Metadata.java:708)
at io.grpc.Metadata$Key.of(Metadata.java:704)
at com.travix.supplier.ancillary.service.bundles.interceptors.logging.client.GrpcLoggingClientCallListener.metadataToString(GrpcLoggingClientCallListener.java:81)
< /code>
Какова причина этого, я делаю что -то не так? Кажется удивительным, что структура будет включать ключ с незаконным значением, поэтому я подозреваю, что я реализовал его неправильно. Grpc/grpc-java/blob/572f4332a75367e0d0e1cb096198839b68787670/core/src/main/java/io/grpc/internal/http2clestream.java#l66. Я попытался скопировать эту http_status_line_marshaller < /code> в мою библиотеку и создать ключ с этим, но я все еще получил такое же исключение. правильный способ реализовать это, это было бы оценено!
Подробнее здесь: https://stackoverflow.com/questions/794 ... -including
Как правильный способ прочитать все заголовки GRPC и трейлеры в Java, включая «: статус»? ⇐ JAVA
Программисты JAVA общаются здесь
1738313784
Anonymous
Я пытаюсь реализовать перехватчик для регистрации на серверах и клиентах GRPC. Я попытался использовать следующий код для прочтения всех клавишных значений из метаданных и преобразовать их в строковое представление, чтобы распечатать их на экран:
private String metadataToString(final Metadata metadata) {
if (metadata == null) {
return "";
}
var sb = new StringBuilder();
for (String key : metadata.keys())
{
var metadataKey = Metadata.Key.of(key, Metadata.ASCII_STRING_MARSHALLER);
sb.append(
String.format(
"%s: %s\n",
key,
metadata.get(metadataKey)));
}
return sb.toString();
}
< /code>
Я проверил его в клиентском перехватчике, чтобы войти в систему заголовков и трейлеров. Это работает нормально, если запрос GRPC успешно. И в этом случае приведенный выше код не выполняет следующее исключение: < /p>
java.lang.IllegalArgumentException: Invalid character ':' in key name ':status'
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:273)
at io.grpc.Metadata$Key.validateName(Metadata.java:754)
at io.grpc.Metadata$Key.(Metadata.java:762)
at io.grpc.Metadata$Key.(Metadata.java:671)
at io.grpc.Metadata$AsciiKey.(Metadata.java:971)
at io.grpc.Metadata$AsciiKey.(Metadata.java:966)
at io.grpc.Metadata$Key.of(Metadata.java:708)
at io.grpc.Metadata$Key.of(Metadata.java:704)
at com.travix.supplier.ancillary.service.bundles.interceptors.logging.client.GrpcLoggingClientCallListener.metadataToString(GrpcLoggingClientCallListener.java:81)
< /code>
Какова причина этого, я делаю что -то не так? Кажется удивительным, что структура будет включать ключ с незаконным значением, поэтому я подозреваю, что я реализовал его неправильно. Grpc/grpc-java/blob/572f4332a75367e0d0e1cb096198839b68787670/core/src/main/java/io/grpc/internal/http2clestream.java#l66. Я попытался скопировать эту http_status_line_marshaller < /code> в мою библиотеку и создать ключ с этим, но я все еще получил такое же исключение. правильный способ реализовать это, это было бы оценено!
Подробнее здесь: [url]https://stackoverflow.com/questions/79402208/what-is-the-correct-way-to-read-all-grpc-headers-and-trailers-in-java-including[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия