• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java HttpEngine类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中okhttp3.internal.http.HttpEngine的典型用法代码示例。如果您正苦于以下问题:Java HttpEngine类的具体用法?Java HttpEngine怎么用?Java HttpEngine使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



HttpEngine类属于okhttp3.internal.http包,在下文中一共展示了HttpEngine类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: getInputStream

import okhttp3.internal.http.HttpEngine; //导入依赖的package包/类
@Override public final InputStream getInputStream() throws IOException {
  if (!doInput) {
    throw new ProtocolException("This protocol does not support input");
  }

  HttpEngine response = getResponse();

  // if the requested file does not exist, throw an exception formerly the
  // Error page from the server was returned if the requested file was
  // text/html this has changed to return FileNotFoundException for all
  // file types
  if (getResponseCode() >= HTTP_BAD_REQUEST) {
    throw new FileNotFoundException(url.toString());
  }

  return response.getResponse().body().byteStream();
}
 
开发者ID:lizhangqu,项目名称:PriorityOkHttp,代码行数:18,代码来源:HttpURLConnectionImpl.java


示例2: getErrorStream

import okhttp3.internal.http.HttpEngine; //导入依赖的package包/类
/**
 * Returns an input stream from the server in the case of error such as the requested file (txt,
 * htm, html) is not found on the remote server.
 */
@Override public final InputStream getErrorStream() {
  try {
    HttpEngine response = getResponse();
    if (HttpEngine.hasBody(response.getResponse())
        && response.getResponse().code() >= HTTP_BAD_REQUEST) {
      return response.getResponse().body().byteStream();
    }
    return null;
  } catch (IOException e) {
    return null;
  }
}
 
开发者ID:lizhangqu,项目名称:PriorityOkHttp,代码行数:17,代码来源:HttpURLConnectionImpl.java


示例3: newHttpEngine

import okhttp3.internal.http.HttpEngine; //导入依赖的package包/类
private HttpEngine newHttpEngine(String method, StreamAllocation streamAllocation,
    RetryableSink requestBody, Response priorResponse)
    throws MalformedURLException, UnknownHostException {
  // OkHttp's Call API requires a placeholder body; the real body will be streamed separately.
  RequestBody placeholderBody = HttpMethod.requiresRequestBody(method)
      ? EMPTY_REQUEST_BODY
      : null;
  URL url = getURL();
  HttpUrl httpUrl = Internal.instance.getHttpUrlChecked(url.toString());
  Request.Builder builder = new Request.Builder()
      .url(httpUrl)
      .method(method, placeholderBody);
  Headers headers = requestHeaders.build();
  for (int i = 0, size = headers.size(); i < size; i++) {
    builder.addHeader(headers.name(i), headers.value(i));
  }

  boolean bufferRequestBody = false;
  if (HttpMethod.permitsRequestBody(method)) {
    // Specify how the request body is terminated.
    if (fixedContentLength != -1) {
      builder.header("Content-Length", Long.toString(fixedContentLength));
    } else if (chunkLength > 0) {
      builder.header("Transfer-Encoding", "chunked");
    } else {
      bufferRequestBody = true;
    }

    // Add a content type for the request body, if one isn't already present.
    if (headers.get("Content-Type") == null) {
      builder.header("Content-Type", "application/x-www-form-urlencoded");
    }
  }

  if (headers.get("User-Agent") == null) {
    builder.header("User-Agent", defaultUserAgent());
  }

  Request request = builder.build();

  // If we're currently not using caches, make sure the engine's client doesn't have one.
  OkHttpClient engineClient = client;
  if (Internal.instance.internalCache(engineClient) != null && !getUseCaches()) {
    engineClient = client.newBuilder()
        .cache(null)
        .build();
  }

  return new HttpEngine(engineClient, request, bufferRequestBody, true, false, streamAllocation,
      requestBody, priorResponse);
}
 
开发者ID:lizhangqu,项目名称:PriorityOkHttp,代码行数:52,代码来源:HttpURLConnectionImpl.java


示例4: getResponse

import okhttp3.internal.http.HttpEngine; //导入依赖的package包/类
/**
 * Aggressively tries to get the final HTTP response, potentially making many HTTP requests in the
 * process in order to cope with redirects and authentication.
 */
private HttpEngine getResponse() throws IOException {
  initHttpEngine();

  if (httpEngine.hasResponse()) {
    return httpEngine;
  }

  while (true) {
    if (!execute(true)) {
      continue;
    }

    Response response = httpEngine.getResponse();
    Request followUp = httpEngine.followUpRequest();

    if (followUp == null) {
      httpEngine.releaseStreamAllocation();
      return httpEngine;
    }

    if (++followUpCount > HttpEngine.MAX_FOLLOW_UPS) {
      throw new ProtocolException("Too many follow-up requests: " + followUpCount);
    }

    // The first request was insufficient. Prepare for another...
    url = followUp.url().url();
    requestHeaders = followUp.headers().newBuilder();

    // Although RFC 2616 10.3.2 specifies that a HTTP_MOVED_PERM redirect
    // should keep the same method, Chrome, Firefox and the RI all issue GETs
    // when following any redirect.
    Sink requestBody = httpEngine.getRequestBody();
    if (!followUp.method().equals(method)) {
      requestBody = null;
    }

    if (requestBody != null && !(requestBody instanceof RetryableSink)) {
      throw new HttpRetryException("Cannot retry streamed HTTP body", responseCode);
    }

    StreamAllocation streamAllocation = httpEngine.close();
    if (!httpEngine.sameConnection(followUp.url())) {
      streamAllocation.release();
      streamAllocation = null;
    }

    httpEngine = newHttpEngine(followUp.method(), streamAllocation, (RetryableSink) requestBody,
        response);
  }
}
 
开发者ID:lizhangqu,项目名称:PriorityOkHttp,代码行数:55,代码来源:HttpURLConnectionImpl.java



注:本文中的okhttp3.internal.http.HttpEngine类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java EncodedValueUtils类代码示例发布时间:2022-05-22
下一篇:
Java LoggingHandler类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap