public static Task SendHttpError(HttpResponse response, StatusCode statusCode, string message) { response.StatusCode = StatusCodes.Status415UnsupportedMediaType; response.AppendTrailer(GrpcProtocolConstants.StatusTrailer, statusCode.ToTrailerString()); response.AppendTrailer(GrpcProtocolConstants.MessageTrailer, message); return(response.WriteAsync(message)); }
public static Task SendHttpError(HttpResponse response, int httpStatusCode, StatusCode grpcStatusCode, string message) { response.StatusCode = httpStatusCode; response.AppendTrailer(GrpcProtocolConstants.StatusTrailer, grpcStatusCode.ToTrailerString()); response.AppendTrailer(GrpcProtocolConstants.MessageTrailer, message); return(response.WriteAsync(message)); }
public static void ConsolidateTrailers(this HttpResponse httpResponse, HttpContextServerCallContext context) { if (context.HasResponseTrailers) { foreach (var trailer in context.ResponseTrailers) { // TODO(juntaoluo): What about binary trailers if (!trailer.IsBinary) { httpResponse.AppendTrailer(trailer.Key, trailer.Value); } } } // Append status trailers, these overwrite any existing status trailers set via ServerCallContext.ResponseTrailers httpResponse.AppendTrailer(GrpcProtocolConstants.StatusTrailer, context.Status.StatusCode.ToTrailerString()); httpResponse.AppendTrailer(GrpcProtocolConstants.MessageTrailer, context.Status.Detail); }
public static void ConsolidateTrailers(this HttpResponse httpResponse, HttpContextServerCallContext context) { if (context.HasResponseTrailers) { foreach (var trailer in context.ResponseTrailers) { if (trailer.IsBinary) { httpResponse.AppendTrailer(trailer.Key, Convert.ToBase64String(trailer.ValueBytes)); } else { httpResponse.AppendTrailer(trailer.Key, trailer.Value); } } } // Append status trailers, these overwrite any existing status trailers set via ServerCallContext.ResponseTrailers GrpcProtocolHelpers.AppendStatusTrailers(httpResponse, context.Status); }
public static void AppendStatusTrailers(HttpResponse response, Status status) { response.AppendTrailer(GrpcProtocolConstants.StatusTrailer, status.StatusCode.ToTrailerString()); response.AppendTrailer(GrpcProtocolConstants.MessageTrailer, status.Detail); }
/// <summary> /// Sets the Server-Timing trailer header value. /// </summary> /// <param name="response">The response.</param> /// <param name="metrics">The metrics.</param> public static void SetServerTimingTrailer(this HttpResponse response, params ServerTimingMetric[] metrics) { ServerTimingHeaderValue serverTiming = new ServerTimingHeaderValue(metrics); response.AppendTrailer(HeaderNames.ServerTiming, serverTiming.ToString()); }
/// <summary> /// Sets the Server-Timing trailer header value. /// </summary> /// <param name="response">The response.</param> /// <param name="serverTiming">The Server-Timing header value.</param> public static void SetServerTimingTrailer(this HttpResponse response, ServerTimingHeaderValue serverTiming) { response.AppendTrailer(HeaderNames.ServerTiming, serverTiming?.ToString()); }