本文整理了Java中com.linecorp.armeria.common.HttpResponse.streaming()
方法的一些代码示例,展示了HttpResponse.streaming()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。HttpResponse.streaming()
方法的具体详情如下:
包路径:com.linecorp.armeria.common.HttpResponse
类名称: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);
内容来源于网络,如有侵权,请联系作者删除!