List of usage examples for org.apache.http.util CharArrayBuffer length
public int length()
From source file:net.oneandone.sushi.fs.webdav.LoggingSessionInputBuffer.java
@Override public int readLine(CharArrayBuffer buffer) throws IOException { int result;/*from w w w . j a v a2 s.c o m*/ int pos; result = super.readLine(buffer); if (result >= 0) { pos = buffer.length() - result; logger.log(new String(buffer.buffer(), pos, result)); logger.log("\r\n"); } return result; }
From source file:com.subgraph.vega.ui.httpeditor.parser.HttpRequestParser.java
/** * Parse a manually-entered HTTP request into the IHttpRequestBuilder. * //from www . j ava 2s. c o m * @param content Manually-entered HTTP request. */ public void parseRequest(final String content) throws URISyntaxException, UnsupportedEncodingException { final CharArrayBuffer buf = new CharArrayBuffer(0); buf.append(content); final ParserCursor bufCursor = new ParserCursor(0, buf.length()); final LineParser parser = new BasicLineParser(); if (parseRequestLine(parser, builder, buf, bufCursor) < 0) { return; } builder.clearHeaders(); parseHeaders(parser, builder, buf, bufCursor); if (!bufCursor.atEnd() && parseInlineEntities) { StringEntity entity = new StringEntity(buf.substring(bufCursor.getPos(), bufCursor.getUpperBound())); builder.setEntity(entity); } }
From source file:org.vietspider.net.apache.LoggingSessionInputBuffer.java
public int readLine(final CharArrayBuffer buffer) throws IOException { int l = this.in.readLine(buffer); if (this.wire.enabled() && l > 0) { int pos = buffer.length() - l; String s = new String(buffer.buffer(), pos, l); this.wire.input(s + "[EOL]"); }/*from w ww.ja va 2 s.c o m*/ return l; }
From source file:com.subgraph.vega.ui.httpeditor.parser.HttpResponseParser.java
/** * Read and parse the response line.//from w w w.j a va 2 s. com * * @param parser HC LineParser. * @param builder HTTP response builder. * @param buf * @param bufCursor * @return */ private int parseStatusLine(final LineParser parser, final IHttpResponseBuilder builder, final CharArrayBuffer buf, final ParserCursor bufCursor) { final CharArrayBuffer lnBuf = new CharArrayBuffer(0); if (readLine(buf, bufCursor, lnBuf) < 1) { // no data! return -1; } final ParserCursor lnCursor = new ParserCursor(0, lnBuf.length()); final StatusLine statusLine = parser.parseStatusLine(lnBuf, lnCursor); builder.setFromStatusLine(statusLine); return 0; }
From source file:com.subgraph.vega.ui.httpeditor.parser.HttpRequestParser.java
/** * Read and parse the request line.//w w w. ja v a 2 s.co m * * @param parser HC LineParser. * @param builder HTTP request builder. * @param buf * @param bufCursor * @return * @throws URISyntaxException */ private int parseRequestLine(final LineParser parser, final IHttpRequestBuilder builder, final CharArrayBuffer buf, final ParserCursor bufCursor) throws URISyntaxException { final CharArrayBuffer lnBuf = new CharArrayBuffer(0); if (readLine(buf, bufCursor, lnBuf) < 1) { // no data! return -1; } final ParserCursor lnCursor = new ParserCursor(0, lnBuf.length()); String method, uri; ProtocolVersion version; if ((method = nextWord(lnBuf, lnCursor)) != null) { if ((uri = nextWord(lnBuf, lnCursor)) != null) { try { version = parser.parseProtocolVersion(lnBuf, lnCursor); } catch (ParseException e) { // treat the unparseable version as HTTP/1.1 version = new ProtocolVersion("HTTP", 1, 1); } ; } else { uri = ""; version = null;//new ProtocolVersion("HTTP", 0, 9); } } else { method = lnBuf.toString(); uri = ""; version = null;//new ProtocolVersion("HTTP", 0, 9); } builder.setMethod(method); builder.setFromUri(new URI(uri)); builder.setProtocolVersion(version); return 0; }
From source file:com.gargoylesoftware.htmlunit.httpclient.HtmlUnitBrowserCompatCookieSpec.java
/** * {@inheritDoc}// ww w. j a v a 2 s .c om */ @Override public List<Cookie> parse(Header header, final CookieOrigin origin) throws MalformedCookieException { // first a hack to support empty headers final String text = header.getValue(); int endPos = text.indexOf(';'); if (endPos < 0) { endPos = text.indexOf('='); } else { final int pos = text.indexOf('='); if (pos > endPos) { endPos = -1; } else { endPos = pos; } } if (endPos < 0) { header = new BasicHeader(header.getName(), EMPTY_COOKIE_NAME + "=" + header.getValue()); } else if (endPos == 0 || StringUtils.isBlank(text.substring(0, endPos))) { header = new BasicHeader(header.getName(), EMPTY_COOKIE_NAME + header.getValue()); } final List<Cookie> cookies; final String headername = header.getName(); if (!headername.equalsIgnoreCase(SM.SET_COOKIE)) { throw new MalformedCookieException("Unrecognized cookie header '" + header.toString() + "'"); } final HeaderElement[] helems = header.getElements(); boolean versioned = false; boolean netscape = false; for (final HeaderElement helem : helems) { if (helem.getParameterByName("version") != null) { versioned = true; } if (helem.getParameterByName("expires") != null) { netscape = true; } } if (netscape || !versioned) { // Need to parse the header again, because Netscape style cookies do not correctly // support multiple header elements (comma cannot be treated as an element separator) final NetscapeDraftHeaderParser parser = NetscapeDraftHeaderParser.DEFAULT; final CharArrayBuffer buffer; final ParserCursor cursor; if (header instanceof FormattedHeader) { buffer = ((FormattedHeader) header).getBuffer(); cursor = new ParserCursor(((FormattedHeader) header).getValuePos(), buffer.length()); } else { final String s = header.getValue(); if (s == null) { throw new MalformedCookieException("Header value is null"); } buffer = new CharArrayBuffer(s.length()); buffer.append(s); cursor = new ParserCursor(0, buffer.length()); } final HeaderElement elem = parser.parseHeader(buffer, cursor); final String name = elem.getName(); final String value = elem.getValue(); if (name == null || name.isEmpty()) { throw new MalformedCookieException("Cookie name may not be empty"); } final BasicClientCookie cookie = new BasicClientCookie(name, value); cookie.setPath(getDefaultPath(origin)); cookie.setDomain(getDefaultDomain(origin)); // cycle through the parameters final NameValuePair[] attribs = elem.getParameters(); for (int j = attribs.length - 1; j >= 0; j--) { final NameValuePair attrib = attribs[j]; final String s = attrib.getName().toLowerCase(Locale.ROOT); cookie.setAttribute(s, attrib.getValue()); final CookieAttributeHandler handler = findAttribHandler(s); if (handler != null) { handler.parse(cookie, attrib.getValue()); } } // Override version for Netscape style cookies if (netscape) { cookie.setVersion(0); } cookies = Collections.<Cookie>singletonList(cookie); } else { cookies = parse(helems, origin); } for (final Cookie c : cookies) { // re-add quotes around value if parsing as incorrectly trimmed them if (header.getValue().contains(c.getName() + "=\"" + c.getValue())) { ((BasicClientCookie) c).setValue('"' + c.getValue() + '"'); } } return cookies; }
From source file:at.general.solutions.android.ical.remote.HttpDownloadThread.java
@Override public void run() { HttpParams params = new BasicHttpParams(); ConnManagerParams.setMaxTotalConnections(params, 100); HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); HttpProtocolParams.setUserAgent(params, USER_AGENT); SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); schemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(), 443)); ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry); DefaultHttpClient client = new DefaultHttpClient(cm, params); if (useAuthentication) { client.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials(remoteUsername, remotePassword)); }// w w w . ja v a 2 s .c o m HttpGet get = new HttpGet(remoteUrl); try { super.sendInitMessage(R.string.downloading); HttpResponse response = client.execute(get); Log.d(LOG_TAG, response.getStatusLine().getReasonPhrase() + " " + isGoodResponse(response.getStatusLine().getStatusCode())); if (isGoodResponse(response.getStatusLine().getStatusCode())) { HttpEntity entity = response.getEntity(); InputStream instream = entity.getContent(); if (instream == null) { super.sendErrorMessage(R.string.couldnotConnectToRemoteserver); return; } if (entity.getContentLength() > Integer.MAX_VALUE) { super.sendErrorMessage(R.string.remoteFileTooLarge); return; } int i = (int) entity.getContentLength(); if (i < 0) { i = 4096; } String charset = EntityUtils.getContentCharSet(entity); if (charset == null) { charset = encoding; } if (charset == null) { charset = HTTP.DEFAULT_CONTENT_CHARSET; } Reader reader = new InputStreamReader(instream, charset); CharArrayBuffer buffer = new CharArrayBuffer(i); super.sendMaximumMessage(i); try { char[] tmp = new char[1024]; int l; while ((l = reader.read(tmp)) != -1) { buffer.append(tmp, 0, l); super.sendProgressMessage(buffer.length()); } } finally { reader.close(); } super.sendFinishedMessage(buffer.toString()); } else { int errorMsg = R.string.couldnotConnectToRemoteserver; if (isAccessDenied(response.getStatusLine().getStatusCode())) { errorMsg = R.string.accessDenied; } else if (isFileNotFound(response.getStatusLine().getStatusCode())) { errorMsg = R.string.remoteFileNotFound; } super.sendErrorMessage(errorMsg); } } catch (UnknownHostException e) { super.sendErrorMessage(R.string.unknownHostException, e); Log.e(LOG_TAG, "Error occured", e); } catch (Throwable e) { super.sendErrorMessage(R.string.couldnotConnectToRemoteserver, e); Log.e(LOG_TAG, "Error occured", e); } finally { client.getConnectionManager().shutdown(); } }
From source file:com.nominanuda.web.http.HttpCoreHelper.java
private HttpRequest deserializeRequest(InputStream is) throws IOException, HttpException { CharArrayBuffer lineBuf = readLine(is); final ParserCursor cursor = new ParserCursor(0, lineBuf.length()); RequestLine requestline = lineParser.parseRequestLine(lineBuf, cursor); HttpRequest req = createRequest(requestline.getMethod(), requestline.getUri()); fillMessageHeadersAndContent(req, is); return req;//w w w . j a va 2 s . com }
From source file:com.nominanuda.web.http.HttpCoreHelper.java
private HttpResponse deserializeResponse(InputStream is) throws IOException, HttpException { CharArrayBuffer lineBuf = readLine(is); final ParserCursor cursor = new ParserCursor(0, lineBuf.length()); StatusLine requestline = lineParser.parseStatusLine(lineBuf, cursor); HttpResponse resp = createBasicResponse(requestline.getStatusCode(), requestline.getReasonPhrase()); fillMessageHeadersAndContent(resp, is); return resp;/*from w w w . j av a 2 s . c o m*/ }
From source file:com.soundcloud.playerapi.OAuth2Scheme.java
@Override public void processChallenge(Header header) throws MalformedChallengeException { if (header == null) { throw new IllegalArgumentException("Header may not be null"); }/*from w w w . j a v a2 s .c om*/ String authHeader = header.getName(); if (!authHeader.equalsIgnoreCase(AUTH.WWW_AUTH)) { throw new MalformedChallengeException("Unexpected header name: " + authHeader); } CharArrayBuffer buffer; int pos; if (header instanceof FormattedHeader) { buffer = ((FormattedHeader) header).getBuffer(); pos = ((FormattedHeader) header).getValuePos(); } else { String s = header.getValue(); if (s == null) { throw new MalformedChallengeException("Header value is null"); } buffer = new CharArrayBuffer(s.length()); buffer.append(s); pos = 0; } while (pos < buffer.length() && HTTP.isWhitespace(buffer.charAt(pos))) { pos++; } int beginIndex = pos; while (pos < buffer.length() && !HTTP.isWhitespace(buffer.charAt(pos))) { pos++; } int endIndex = pos; String s = buffer.substring(beginIndex, endIndex); if (!s.equalsIgnoreCase(getSchemeName())) { throw new MalformedChallengeException("Invalid scheme identifier: " + s); } HeaderValueParser parser = BasicHeaderValueParser.DEFAULT; ParserCursor cursor = new ParserCursor(pos, buffer.length()); HeaderElement[] elements = parser.parseElements(buffer, cursor); if (elements.length == 0) { throw new MalformedChallengeException("Authentication challenge is empty"); } for (HeaderElement element : elements) { this.mParams.put(element.getName(), element.getValue()); } }