/// <summary>Creates new instance of DefaultHttpRequestParser.</summary> /// <remarks>Creates new instance of DefaultHttpRequestParser.</remarks> /// <param name="buffer">the session input buffer.</param> /// <param name="lineParser"> /// the line parser. If <code>null</code> /// <see cref="Org.Apache.Http.Message.BasicLineParser.Instance">Org.Apache.Http.Message.BasicLineParser.Instance /// </see> /// will be used. /// </param> /// <param name="requestFactory"> /// the response factory. If <code>null</code> /// <see cref="Org.Apache.Http.Impl.DefaultHttpRequestFactory.Instance">Org.Apache.Http.Impl.DefaultHttpRequestFactory.Instance /// </see> /// will be used. /// </param> /// <param name="constraints"> /// the message constraints. If <code>null</code> /// <see cref="Org.Apache.Http.Config.MessageConstraints.Default">Org.Apache.Http.Config.MessageConstraints.Default /// </see> /// will be used. /// </param> /// <since>4.3</since> public DefaultHttpRequestParser(SessionInputBuffer buffer, LineParser lineParser, HttpRequestFactory requestFactory, MessageConstraints constraints) : base(buffer , lineParser, constraints) { this.requestFactory = requestFactory != null ? requestFactory : DefaultHttpRequestFactory .Instance; this.lineBuf = new CharArrayBuffer(128); }
/// <summary>Creates new instance of AbstractMessageParser.</summary> /// <remarks>Creates new instance of AbstractMessageParser.</remarks> /// <param name="buffer">the session input buffer.</param> /// <param name="lineParser"> /// the line parser. If <code>null</code> /// <see cref="Org.Apache.Http.Message.BasicLineParser.Instance">Org.Apache.Http.Message.BasicLineParser.Instance /// </see> /// will be used. /// </param> /// <param name="constraints"> /// the message constraints. If <code>null</code> /// <see cref="Org.Apache.Http.Config.MessageConstraints.Default">Org.Apache.Http.Config.MessageConstraints.Default /// </see> /// will be used. /// </param> /// <since>4.3</since> public AbstractMessageParser(SessionInputBuffer buffer, LineParser lineParser, MessageConstraints constraints) : base() { this.sessionBuffer = Args.NotNull(buffer, "Session input buffer"); this.lineParser = lineParser != null ? lineParser : BasicLineParser.Instance; this.messageConstraints = constraints != null ? constraints : MessageConstraints. Default; this.headerLines = new AList <CharArrayBuffer>(); this.state = HeadLine; }
/// <summary>Creates an instance of AbstractMessageParser.</summary> /// <remarks>Creates an instance of AbstractMessageParser.</remarks> /// <param name="buffer">the session input buffer.</param> /// <param name="parser">the line parser.</param> /// <param name="params">HTTP parameters.</param> [System.ObsoleteAttribute(@"(4.3) use AbstractMessageParser{T}.AbstractMessageParser(Org.Apache.Http.IO.SessionInputBuffer, Org.Apache.Http.Message.LineParser, Org.Apache.Http.Config.MessageConstraints)")] public AbstractMessageParser(SessionInputBuffer buffer, LineParser parser, HttpParams @params) : base() { Args.NotNull(buffer, "Session input buffer"); Args.NotNull(@params, "HTTP parameters"); this.sessionBuffer = buffer; this.messageConstraints = HttpParamConfig.GetMessageConstraints(@params); this.lineParser = (parser != null) ? parser : BasicLineParser.Instance; this.headerLines = new AList <CharArrayBuffer>(); this.state = HeadLine; }
public static ConnectionConfig GetConnectionConfig(HttpParams @params) { MessageConstraints messageConstraints = GetMessageConstraints(@params); string csname = (string)@params.GetParameter(CoreProtocolPNames.HttpElementCharset ); return(ConnectionConfig.Custom().SetCharset(csname != null ? Sharpen.Extensions.GetEncoding (csname) : null).SetMalformedInputAction((CodingErrorAction)@params.GetParameter (CoreProtocolPNames.HttpMalformedInputAction)).SetMalformedInputAction((CodingErrorAction )@params.GetParameter(CoreProtocolPNames.HttpUnmappableInputAction)).SetMessageConstraints (messageConstraints).Build()); }
public LoggingManagedHttpClientConnection(string id, Log log, Log headerlog, Log wirelog, int buffersize, int fragmentSizeHint, CharsetDecoder chardecoder, CharsetEncoder charencoder, MessageConstraints constraints, ContentLengthStrategy incomingContentStrategy , ContentLengthStrategy outgoingContentStrategy, HttpMessageWriterFactory <IHttpRequest > requestWriterFactory, HttpMessageParserFactory <HttpResponse> responseParserFactory ) : base(id, buffersize, fragmentSizeHint, chardecoder, charencoder, constraints , incomingContentStrategy, outgoingContentStrategy, requestWriterFactory, responseParserFactory ) { this.log = log; this.headerlog = headerlog; this.wire = new Wire(wirelog, id); }
/// <summary>Creates new instance of SessionInputBufferImpl.</summary> /// <remarks>Creates new instance of SessionInputBufferImpl.</remarks> /// <param name="metrics">HTTP transport metrics.</param> /// <param name="buffersize">buffer size. Must be a positive number.</param> /// <param name="minChunkLimit"> /// size limit below which data chunks should be buffered in memory /// in order to minimize native method invocations on the underlying network socket. /// The optimal value of this parameter can be platform specific and defines a trade-off /// between performance of memory copy operations and that of native method invocation. /// If negative default chunk limited will be used. /// </param> /// <param name="constraints"> /// Message constraints. If <code>null</code> /// <see cref="Org.Apache.Http.Config.MessageConstraints.Default">Org.Apache.Http.Config.MessageConstraints.Default /// </see> /// will be used. /// </param> /// <param name="chardecoder"> /// chardecoder to be used for decoding HTTP protocol elements. /// If <code>null</code> simple type cast will be used for byte to char conversion. /// </param> internal SessionInputBufferImpl(HttpTransportMetricsImpl metrics, int buffersize, int minChunkLimit, MessageConstraints constraints, CharsetDecoder chardecoder) { Args.NotNull(metrics, "HTTP transport metrcis"); Args.Positive(buffersize, "Buffer size"); this.metrics = metrics; this.buffer = new byte[buffersize]; this.bufferpos = 0; this.bufferlen = 0; this.minChunkLimit = minChunkLimit >= 0 ? minChunkLimit : 512; this.constraints = constraints != null ? constraints : MessageConstraints.Default; this.linebuffer = new ByteArrayBuffer(buffersize); this.decoder = chardecoder; }
/// <summary>Creates new instance of BHttpConnectionBase.</summary> /// <remarks>Creates new instance of BHttpConnectionBase.</remarks> /// <param name="buffersize">buffer size. Must be a positive number.</param> /// <param name="fragmentSizeHint">fragment size hint.</param> /// <param name="chardecoder"> /// decoder to be used for decoding HTTP protocol elements. /// If <code>null</code> simple type cast will be used for byte to char conversion. /// </param> /// <param name="charencoder"> /// encoder to be used for encoding HTTP protocol elements. /// If <code>null</code> simple type cast will be used for char to byte conversion. /// </param> /// <param name="constraints"> /// Message constraints. If <code>null</code> /// <see cref="Org.Apache.Http.Config.MessageConstraints.Default">Org.Apache.Http.Config.MessageConstraints.Default /// </see> /// will be used. /// </param> /// <param name="incomingContentStrategy"> /// incoming content length strategy. If <code>null</code> /// <see cref="Org.Apache.Http.Impl.Entity.LaxContentLengthStrategy.Instance">Org.Apache.Http.Impl.Entity.LaxContentLengthStrategy.Instance /// </see> /// will be used. /// </param> /// <param name="outgoingContentStrategy"> /// outgoing content length strategy. If <code>null</code> /// <see cref="Org.Apache.Http.Impl.Entity.StrictContentLengthStrategy.Instance">Org.Apache.Http.Impl.Entity.StrictContentLengthStrategy.Instance /// </see> /// will be used. /// </param> internal BHttpConnectionBase(int buffersize, int fragmentSizeHint, CharsetDecoder chardecoder, CharsetEncoder charencoder, MessageConstraints constraints, ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy) : base( ) { Args.Positive(buffersize, "Buffer size"); HttpTransportMetricsImpl inTransportMetrics = new HttpTransportMetricsImpl(); HttpTransportMetricsImpl outTransportMetrics = new HttpTransportMetricsImpl(); this.inbuffer = new SessionInputBufferImpl(inTransportMetrics, buffersize, -1, constraints != null ? constraints : MessageConstraints.Default, chardecoder); this.outbuffer = new SessionOutputBufferImpl(outTransportMetrics, buffersize, fragmentSizeHint , charencoder); this.connMetrics = new HttpConnectionMetricsImpl(inTransportMetrics, outTransportMetrics ); this.incomingContentStrategy = incomingContentStrategy != null ? incomingContentStrategy : LaxContentLengthStrategy.Instance; this.outgoingContentStrategy = outgoingContentStrategy != null ? outgoingContentStrategy : StrictContentLengthStrategy.Instance; }
/// <since>4.3</since> public DefaultHttpRequestParser(SessionInputBuffer buffer, MessageConstraints constraints ) : this(buffer, null, null, constraints) { }
public virtual HttpMessageParser <HttpResponse> Create(SessionInputBuffer buffer, MessageConstraints constraints) { return(new DefaultHttpResponseParser(buffer, lineParser, responseFactory, constraints )); }
/// <summary>Creates new instance of DefaultBHttpServerConnection.</summary> /// <remarks>Creates new instance of DefaultBHttpServerConnection.</remarks> /// <param name="buffersize">buffer size. Must be a positive number.</param> /// <param name="fragmentSizeHint">fragment size hint.</param> /// <param name="chardecoder"> /// decoder to be used for decoding HTTP protocol elements. /// If <code>null</code> simple type cast will be used for byte to char conversion. /// </param> /// <param name="charencoder"> /// encoder to be used for encoding HTTP protocol elements. /// If <code>null</code> simple type cast will be used for char to byte conversion. /// </param> /// <param name="constraints"> /// Message constraints. If <code>null</code> /// <see cref="Org.Apache.Http.Config.MessageConstraints.Default">Org.Apache.Http.Config.MessageConstraints.Default /// </see> /// will be used. /// </param> /// <param name="incomingContentStrategy"> /// incoming content length strategy. If <code>null</code> /// <see cref="Org.Apache.Http.Impl.Entity.DisallowIdentityContentLengthStrategy.Instance /// ">Org.Apache.Http.Impl.Entity.DisallowIdentityContentLengthStrategy.Instance</see> /// will be used. /// </param> /// <param name="outgoingContentStrategy"> /// outgoing content length strategy. If <code>null</code> /// <see cref="Org.Apache.Http.Impl.Entity.StrictContentLengthStrategy.Instance">Org.Apache.Http.Impl.Entity.StrictContentLengthStrategy.Instance /// </see> /// will be used. /// </param> /// <param name="requestParserFactory"> /// request parser factory. If <code>null</code> /// <see cref="Org.Apache.Http.Impl.IO.DefaultHttpRequestParserFactory.Instance">Org.Apache.Http.Impl.IO.DefaultHttpRequestParserFactory.Instance /// </see> /// will be used. /// </param> /// <param name="responseWriterFactory"> /// response writer factory. If <code>null</code> /// <see cref="Org.Apache.Http.Impl.IO.DefaultHttpResponseWriterFactory.Instance">Org.Apache.Http.Impl.IO.DefaultHttpResponseWriterFactory.Instance /// </see> /// will be used. /// </param> internal DefaultBHttpServerConnection(int buffersize, int fragmentSizeHint, CharsetDecoder chardecoder, CharsetEncoder charencoder, MessageConstraints constraints, ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy, HttpMessageParserFactory <IHttpRequest> requestParserFactory, HttpMessageWriterFactory <HttpResponse> responseWriterFactory ) : base(buffersize, fragmentSizeHint, chardecoder, charencoder, constraints, incomingContentStrategy != null ? incomingContentStrategy : DisallowIdentityContentLengthStrategy.Instance , outgoingContentStrategy) { this.requestParser = (requestParserFactory != null ? requestParserFactory : DefaultHttpRequestParserFactory .Instance).Create(GetSessionInputBuffer(), constraints); this.responseWriter = (responseWriterFactory != null ? responseWriterFactory : DefaultHttpResponseWriterFactory .Instance).Create(GetSessionOutputBuffer()); }
internal DefaultBHttpServerConnection(int buffersize, CharsetDecoder chardecoder, CharsetEncoder charencoder, MessageConstraints constraints) : this(buffersize, buffersize, chardecoder , charencoder, constraints, null, null, null, null) { }
public DefaultManagedHttpClientConnection(string id, int buffersize, int fragmentSizeHint , CharsetDecoder chardecoder, CharsetEncoder charencoder, MessageConstraints constraints , ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy , HttpMessageWriterFactory <IHttpRequest> requestWriterFactory, HttpMessageParserFactory <HttpResponse> responseParserFactory) : base(buffersize, fragmentSizeHint, chardecoder , charencoder, constraints, incomingContentStrategy, outgoingContentStrategy, requestWriterFactory , responseParserFactory) { this.id = id; this.attributes = new ConcurrentHashMap <string, object>(); }
public static MessageConstraints GetMessageConstraints(HttpParams @params) { return(MessageConstraints.Custom().SetMaxHeaderCount(@params.GetIntParameter(CoreConnectionPNames .MaxHeaderCount, -1)).SetMaxLineLength(@params.GetIntParameter(CoreConnectionPNames .MaxLineLength, -1)).Build()); }