• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • HttpComponents組件特性探究(5)

    發表于:2012-11-23來源:Csdn作者:fengjia10點擊數: 標簽:開源框架
    } /** * Determine whether the given response indicates a GZIP response. * * The default implementation checks whether the HTTP Content-Encoding * header contains gzip (in any casing). * * @param httpR

      }

      /**

      * Determine whether the given response indicates a GZIP response.

      *

      * The default implementation checks whether the HTTP "Content-Encoding"

      * header contains "gzip" (in any casing).

      *

      * @param httpResponse the resulting HttpResponse to check

      * @return whether the given response indicates a GZIP response

      */

      protected boolean isGzipResponse(HttpResponse httpResponse) {

      Header encodingHeader = httpResponse.getFirstHeader(HTTP_HEADER_CONTENT_ENCODING);

      return (encodingHeader != null && encodingHeader.getValue() != null && encodingHeader

      .getValue().toLowerCase().contains(ENCODING_GZIP));

      }

      /**

      * Shutdown hook that closes the underlying

      * {@link org.apache.http.conn.ClientConnectionManager

      * ClientConnectionManager}'s connection pool, if any.

      */

      public void destroy() {

      getHttpClient().getConnectionManager().shutdown();

      }

      enum HttpMethod {

      GET,

      POST,

      HEAD,

      OPTIONS,

      PUT,

      DELETE,

      TRACE

      }

      }

      下面是久經考驗的httpClient 3的二次封裝,如下:

      [java] view plaincopyprint?

      /**

      * @author von gosling 2011-12-12

      */

      public class HttpClientUtils {

      private static final Logger log = LoggerFactory

      .getLogger(HttpClientUtils.class);

      private static int timeOut = 100;

      private static int retryCount = 1;

      private static int connectionTimeout = 100;

      private static int maxHostConnections = 32; //根據apache work MPM設置此值

      private static int maxTotalConnections = 512; //同上

      private static String charsetName = "UTF-8";

      public static JSONObject executeMethod(HttpClient httpClient, HttpMethod method) {

      JSONObject result = new JSONObject();

      StopWatch watch = new StopWatch();

      int status = -1;

      try {

      log.info("Execute method({}) begin...", method.getURI());

      watch.start();

      status = httpClient.executeMethod(method);

      watch.stop();

      if (status == HttpStatus.SC_OK) {

      InputStream inputStream = method.getResponseBodyAsStream();

      ByteArrayOutputStream baos = new ByteArrayOutputStream();

      IOUtils.copy(inputStream, baos);

      String response = new String(baos.toByteArray(), charsetName);

      log.info("Response is:{}", response);

      result = JSONObject.parseObject(response);

      } else {

      log.error("Http request failure! status is {}", status);

      }

      } catch (SocketTimeoutException e) {

      log.error("Request time out!");//只關注請求超時,對于其它兩類超時,使用通用異常捕獲

      } catch (Exception e) {

      log.error("Error occur!", e);

      } finally {

      method.releaseConnection();

      log.info("Method {},statusCode {},consuming {} ms", new Object[] { method.getName(),

      status, watch.getTime() });

      }

      return result;

      }

      /**

      * @param uri

      * @param nameValuePairs

      * @return

      */

      public static PostMethod createPostMethod(String uri, NameValuePair[] nameValuePairs) {

      PostMethod method = new PostMethod(uri);

      method.addParameters(nameValuePairs);

      method.getParams().setContentCharset(charsetName);

      return method;

      }

      /**

      * @param uri

      * @param nameValuePairs

      * @return

      */

      public static GetMethod createGetMethod(String uri, NameValuePair[] nameValuePairs) {

      GetMethod method = new GetMethod(uri);

      List list = Lists.newArrayList();

      if (nameValuePairs != null) {

      Collections.addAll(list, nameValuePairs);

      method.setQueryString(list.toArray(new NameValuePair[nameValuePairs.length]));

      }

      method.getParams().setContentCharset(charsetName);

      return method;

      }

      public static HttpClient createHttpClient() {

      //1.

      HttpClient httpClient = new HttpClient(new MultiThreadedHttpConnectionManager());

      //2.

      HttpConnectionManagerParams httpConnectionManagerParams = httpClient

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>