com.linecorp.armeria.common.HttpResponse.streaming()方法的使用及代码示例

x33g5p2x  于2022-01-20 转载在 其他  
字(7.5k)|赞(0)|评价(0)|浏览(69)

本文整理了Java中com.linecorp.armeria.common.HttpResponse.streaming()方法的一些代码示例,展示了HttpResponse.streaming()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。HttpResponse.streaming()方法的具体详情如下:
包路径:com.linecorp.armeria.common.HttpResponse
类名称:HttpResponse
方法名:streaming

HttpResponse.streaming介绍

[英]Creates a new HTTP response that can stream an arbitrary number of HttpObject to the client. The first object written must be of type HttpHeaders.
[中]创建一个新的HTTP响应,该响应可以将任意数量的HttpObject流式传输到客户端。写入的第一个对象必须是HttpHeaders类型。

代码示例

代码示例来源:origin: line/armeria

/**
 * Creates a new failed HTTP response.
 */
static HttpResponse ofFailure(Throwable cause) {
  final HttpResponseWriter res = streaming();
  res.close(cause);
  return res;
}

代码示例来源:origin: line/armeria

/**
 * Handles an {@link HttpMethod#OPTIONS OPTIONS} request.
 * This method sends a {@link HttpStatus#METHOD_NOT_ALLOWED 405 Method Not Allowed} response by default.
 */
protected HttpResponse doOptions(ServiceRequestContext ctx, HttpRequest req) throws Exception {
  final HttpResponseWriter res = HttpResponse.streaming();
  doOptions(ctx, req, res);
  return res;
}

代码示例来源:origin: line/armeria

/**
 * Handles a {@link HttpMethod#HEAD HEAD} request.
 * This method sends a {@link HttpStatus#METHOD_NOT_ALLOWED 405 Method Not Allowed} response by default.
 */
protected HttpResponse doHead(ServiceRequestContext ctx, HttpRequest req) throws Exception {
  final HttpResponseWriter res = HttpResponse.streaming();
  doHead(ctx, req, res);
  return res;
}

代码示例来源:origin: line/armeria

/**
 * Handles a {@link HttpMethod#GET GET} request.
 * This method sends a {@link HttpStatus#METHOD_NOT_ALLOWED 405 Method Not Allowed} response by default.
 */
protected HttpResponse doGet(ServiceRequestContext ctx, HttpRequest req) throws Exception {
  final HttpResponseWriter res = HttpResponse.streaming();
  doGet(ctx, req, res);
  return res;
}

代码示例来源:origin: line/armeria

/**
 * Handles a {@link HttpMethod#POST POST} request.
 * This method sends a {@link HttpStatus#METHOD_NOT_ALLOWED 405 Method Not Allowed} response by default.
 */
protected HttpResponse doPost(ServiceRequestContext ctx, HttpRequest req) throws Exception {
  final HttpResponseWriter res = HttpResponse.streaming();
  doPost(ctx, req, res);
  return res;
}

代码示例来源:origin: line/armeria

/**
 * Handles a {@link HttpMethod#PUT PUT} request.
 * This method sends a {@link HttpStatus#METHOD_NOT_ALLOWED 405 Method Not Allowed} response by default.
 */
protected HttpResponse doPut(ServiceRequestContext ctx, HttpRequest req) throws Exception {
  final HttpResponseWriter res = HttpResponse.streaming();
  doPut(ctx, req, res);
  return res;
}

代码示例来源:origin: line/armeria

/**
 * Handles a {@link HttpMethod#TRACE TRACE} request.
 * This method sends a {@link HttpStatus#METHOD_NOT_ALLOWED 405 Method Not Allowed} response by default.
 */
protected HttpResponse doTrace(ServiceRequestContext ctx, HttpRequest req) throws Exception {
  final HttpResponseWriter res = HttpResponse.streaming();
  doTrace(ctx, req, res);
  return res;
}

代码示例来源:origin: line/armeria

/**
 * Handles a {@link HttpMethod#PATCH PATCH} request.
 * This method sends a {@link HttpStatus#METHOD_NOT_ALLOWED 405 Method Not Allowed} response by default.
 */
protected HttpResponse doPatch(ServiceRequestContext ctx, HttpRequest req) throws Exception {
  final HttpResponseWriter res = HttpResponse.streaming();
  doPatch(ctx, req, res);
  return res;
}

代码示例来源:origin: line/armeria

/**
 * Handles a {@link HttpMethod#DELETE DELETE} request.
 * This method sends a {@link HttpStatus#METHOD_NOT_ALLOWED 405 Method Not Allowed} response by default.
 */
protected HttpResponse doDelete(ServiceRequestContext ctx, HttpRequest req) throws Exception {
  final HttpResponseWriter res = HttpResponse.streaming();
  doDelete(ctx, req, res);
  return res;
}

代码示例来源:origin: line/armeria

/**
 * Returns a new {@link HttpResponseWriter} which sends a streaming response from the specified
 * {@link Publisher}.
 *
 * @param publisher publishes objects
 * @param headers to be written to the returned {@link HttpResponseWriter}
 * @param trailingHeaders to be written to the returned {@link HttpResponseWriter}
 * @param contentConverter converts the published objects into streaming contents of the response
 */
public static <T> HttpResponseWriter streamingFrom(Publisher<T> publisher,
                          HttpHeaders headers, HttpHeaders trailingHeaders,
                          Function<T, HttpData> contentConverter) {
  final HttpResponseWriter writer = HttpResponse.streaming();
  publisher.subscribe(new StreamingSubscriber<>(writer, headers, trailingHeaders, contentConverter));
  return writer;
}

代码示例来源:origin: line/armeria

requireNonNull(executor, "executor");
final HttpResponseWriter writer = HttpResponse.streaming();
executor.execute(() -> {
  try {

代码示例来源:origin: line/armeria

@Override
protected final HttpResponse doRead(HttpHeaders headers, long length,
                  Executor fileReadExecutor, ByteBufAllocator alloc) throws IOException {
  final T in = newStream();
  if (in == null) {
    return null;
  }
  boolean submitted = false;
  try {
    final HttpResponseWriter res = HttpResponse.streaming();
    res.write(headers);
    fileReadExecutor.execute(() -> doRead(res, in, 0, length, fileReadExecutor, alloc));
    submitted = true;
    return res;
  } finally {
    if (!submitted) {
      close(in);
    }
  }
}

代码示例来源:origin: line/armeria

private static HttpResponseWriter aggregateFrom(CompletableFuture<?> future,
                        HttpHeaders headers, HttpHeaders trailingHeaders,
                        Function<Object, HttpData> contentConverter) {
  final HttpResponseWriter writer = HttpResponse.streaming();
  future.handle((result, cause) -> {
    if (cause != null) {
      writer.close(cause);
      return null;
    }
    try {
      final HttpData content = contentConverter.apply(result);
      writer.write(headers);
      writer.write(content);
      if (!trailingHeaders.isEmpty()) {
        writer.write(trailingHeaders);
      }
      writer.close();
    } catch (Exception e) {
      writer.close(e);
    }
    return null;
  });
  return writer;
}

代码示例来源:origin: line/armeria

/**
 * Creates a new HTTP response of the specified {@link HttpStatus} and closes the stream if the
 * {@link HttpStatusClass} is not {@linkplain HttpStatusClass#INFORMATIONAL informational} (1xx).
 */
static HttpResponse of(HttpStatus status) {
  requireNonNull(status, "status");
  if (status.codeClass() == HttpStatusClass.INFORMATIONAL) {
    final HttpResponseWriter res = streaming();
    res.write(HttpHeaders.of(status));
    return res;
  } else if (isContentAlwaysEmpty(status)) {
    return new OneElementFixedHttpResponse(HttpHeaders.of(status));
  } else {
    return of(status, MediaType.PLAIN_TEXT_UTF_8, status.toHttpData());
  }
}

代码示例来源:origin: line/armeria

final HttpResponseWriter res = HttpResponse.streaming();
req.aggregate().handle((aReq, cause) -> {
  try {

代码示例来源:origin: line/armeria

assert connector != null;
final HttpResponseWriter res = HttpResponse.streaming();

代码示例来源:origin: line/armeria

@Override
  protected void configure(ServerBuilder sb) {
    sb.service("/trailers", ((ctx, req) -> {
      HttpResponseWriter writer = HttpResponse.streaming();
      HttpHeaders headers = HttpHeaders.of(HttpStatus.OK);
      assertThat(headers.isEndOfStream()).isFalse();
      HttpHeaders trailers = new DefaultHttpHeaders(true, 1, true)
          .set(HttpHeaderNames.of("armeria-message"), "error");
      assertThat(trailers.isEndOfStream()).isTrue();
      writer.write(headers);
      writer.write(trailers);
      writer.close();
      return writer;
    }));
    sb.service("/trailers-only", ((ctx, req) -> {
      HttpResponseWriter writer = HttpResponse.streaming();
      HttpHeaders trailers = new DefaultHttpHeaders(true, 1, true)
          .status(HttpStatus.OK)
          .set(HttpHeaderNames.of("armeria-message"), "error");
      assertThat(trailers.isEndOfStream()).isTrue();
      writer.write(trailers);
      writer.close();
      return writer;
    }));
    sb.decorator(LoggingService.newDecorator());
  }
};

代码示例来源:origin: line/armeria

ctx.logBuilder().deferResponseContent();
final HttpResponseWriter res = HttpResponse.streaming();
final ArmeriaServerCall<?, ?> call = startCall(
    methodName, method, ctx, req.headers(), res, serializationFormat);

代码示例来源:origin: com.linecorp.armeria/armeria-grpc

ctx.logBuilder().deferResponseContent();
final HttpResponseWriter res = HttpResponse.streaming();
final ArmeriaServerCall<?, ?> call = startCall(
    methodName, method, ctx, req.headers(), res, serializationFormat);

相关文章