Java tutorial
package org.apache.http.impl.io; import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat; import java.io.IOException; import org.apache.http.ConnectionClosedException; import org.apache.http.HttpException; import org.apache.http.HttpRequest; import org.apache.http.HttpRequestFactory; import org.apache.http.ParseException; import org.apache.http.annotation.NotThreadSafe; import org.apache.http.config.MessageConstraints; import org.apache.http.impl.DefaultHttpRequestFactory; import org.apache.http.io.SessionInputBuffer; import org.apache.http.message.LineParser; import org.apache.http.message.ParserCursor; import org.apache.http.params.HttpParams; import org.apache.http.util.Args; import org.apache.http.util.CharArrayBuffer; @NotThreadSafe public class DefaultHttpRequestParser extends AbstractMessageParser<HttpRequest> { private final CharArrayBuffer lineBuf; private final HttpRequestFactory requestFactory; @Deprecated public DefaultHttpRequestParser(SessionInputBuffer sessionInputBuffer, LineParser lineParser, HttpRequestFactory httpRequestFactory, HttpParams httpParams) { super(sessionInputBuffer, lineParser, httpParams); this.requestFactory = (HttpRequestFactory) Args.notNull(httpRequestFactory, "Request factory"); this.lineBuf = new CharArrayBuffer(AccessibilityNodeInfoCompat.ACTION_CLEAR_ACCESSIBILITY_FOCUS); } public DefaultHttpRequestParser(SessionInputBuffer sessionInputBuffer, LineParser lineParser, HttpRequestFactory httpRequestFactory, MessageConstraints messageConstraints) { super(sessionInputBuffer, lineParser, messageConstraints); if (httpRequestFactory == null) { httpRequestFactory = DefaultHttpRequestFactory.INSTANCE; } this.requestFactory = httpRequestFactory; this.lineBuf = new CharArrayBuffer(AccessibilityNodeInfoCompat.ACTION_CLEAR_ACCESSIBILITY_FOCUS); } public DefaultHttpRequestParser(SessionInputBuffer sessionInputBuffer, MessageConstraints messageConstraints) { this(sessionInputBuffer, null, null, messageConstraints); } public DefaultHttpRequestParser(SessionInputBuffer sessionInputBuffer) { this(sessionInputBuffer, null, null, MessageConstraints.DEFAULT); } protected HttpRequest parseHead(SessionInputBuffer sessionInputBuffer) throws IOException, HttpException, ParseException { this.lineBuf.clear(); if (sessionInputBuffer.readLine(this.lineBuf) == -1) { throw new ConnectionClosedException("Client closed connection"); } return this.requestFactory.newHttpRequest( this.lineParser.parseRequestLine(this.lineBuf, new ParserCursor(0, this.lineBuf.length()))); } }