`

RequestConfig类解析

 
阅读更多
这个类位于 org.apache.http.client.config包下,主要用于获取和配置一些外部的网络环境,它下面有一个嵌套类 RequestConfig.Builder,顾名思义,它肯定是用来配置网络环境的(姑且叫它“配置器”吧)。其使用方法是:先用 RequestConfig类的静态方法custom()获取equestConfig.Builder“配置器”,然后再用其下各种方法配置网络环境;或者已经有配置好的RequestConfig对象(非RequestConfig.Builder)而将此对象拷贝(RequestConfig类的 copy()方法)过来返回“配置器“而重新进行其它的网络环境的配置。最终,再调用配置器的buillder()方法返回RequestConfig对象。

RequestConfig defaultRequestConfig = RequestConfig.custom()
                .setCookieSpec(CookieSpecs.BEST_MATCH)
                .setExpectContinueEnabled(true)
                .setStaleConnectionCheckEnabled(true)
                .setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST))
                .setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC))
                .build();
RequestConfig requestConfig = RequestConfig.copy(defaultRequestConfig)
                .setSocketTimeout(5000)
                .setConnectTimeout(5000)
                .setConnectionRequestTimeout(5000)
                .setProxy(new HttpHost("myotherproxy", 8080))
                .build();


配置好请求信息之后,那么接下的问题就是将配置好请求信息附加到http请求中

HttpGet httpget = new HttpGet("http://www.xjweb88.com");
                httpget.setConfig(requestConfig);


RequestConfig.Buillder配置中的方法
setAuthenticationEnabled(boolean authenticationEnabled)
setCircularRedirectsAllowed(boolean circularRedirectsAllowed)
setConnectionRequestTimeout(int connectionRequestTimeout)
setConnectTimeout(int connectTimeout)
setCookieSpec(String cookieSpec)
setExpectContinueEnabled(boolean expectContinueEnabled)
setLocalAddress(InetAddress localAddress)
setMaxRedirects(int maxRedirects)
setProxy(HttpHost proxy)
setProxyPreferredAuthSchemes(Collection proxyPreferredAuthSchemes)
setRedirectsEnabled(boolean redirectsEnabled)
setRelativeRedirectsAllowed(boolean relativeRedirectsAllowed)
setSocketTimeout(int socketTimeout)
setStaleConnectionCheckEnabled(boolean staleConnectionCheckEnabled)
setTargetPreferredAuthSchemes(Collection targetPreferredAuthSchemes)
build()

  RequestConfig类中的方法
getConnectionRequestTimeout()
getConnectTimeout()
getCookieSpec()
getLocalAddress()
getMaxRedirects()
getProxy()
getProxyPreferredAuthSchemes()
getSocketTimeout()
getTargetPreferredAuthSchemes()
isAuthenticationEnabled()
isCircularRedirectsAllowed()
isExpectContinueEnabled()
isRedirectsEnabled()
isRelativeRedirectsAllowed()
isStaleConnectionCheckEnabled()
toString()



http://www.xjweb88.com/thread-42-1-1.html
分享到:
评论

相关推荐

    httpclient工具类包

    《HttpClient工具类包详解》 在Java开发中, HttpClient是一个非常重要的工具库,它提供了强大的HTTP客户端编程接口,使得开发者可以方便地进行HTTP通信。本文将深入探讨HttpClient工具类包,包括其核心组件、功能...

    httpclient 工具类

    如果需要更复杂的处理,例如解析JSON或XML,可以使用诸如Gson或Jackson这样的库来处理响应实体。 总结一下,HttpClient工具类为我们提供了一种简洁的方式去发送HTTP请求。通过它可以方便地执行GET、POST请求,并对...

    HttpClent需要jar包

    在Java项目中使用HttpClient,首先需要将必要的jar包添加到项目的类路径中。 在你提供的信息中,有两个关键的jar包:`httpclient-4.3.1.jar`和`httpcore-4.3.jar`。这两个jar包构成了HttpClient的核心组件: 1. `...

    HttpClient工具类封装.docx

    它使用`RequestConfig.custom()`创建一个自定义配置对象,并根据预先定义的常量设置超时时间,然后将其应用到传入的`HttpRequestBase`对象上。 4. **请求参数处理**: - 对于POST请求,可以使用`...

    httpclient4.3 封装工具类.zip

    - **处理响应**:封装解析响应内容的方法,如`parseResponse(HttpResponse response)`,可以将内容转换为字符串、JSON对象等。 - **异常处理**:添加统一的异常处理逻辑,确保在出现错误时能提供有用的反馈。 4. ...

    最新 httpclient-4.3.3

    8. **请求和响应的细粒度控制**:HttpClient 允许开发者精确控制每个请求的头信息、参数、超时设置等,同时可以完全解析响应内容,包括状态码、头信息和实体内容。 9. **HTTP 缓存**:HttpClient 支持 HTTP 缓存...

    彻底解决httpClient乱码问题

    .setDefaultRequestConfig(RequestConfig.custom().build()) .build(); ``` 在这里,可以添加自定义的字符集处理策略。 4. **工具类的封装**:根据描述,有一个工具类能够有效解决乱码问题。通常,这样的工具类...

    httpclient源码

    6. **请求配置**:深入`RequestConfig`类,了解如何设置请求的超时、重试次数、连接和读取时间等。 7. **异步编程**:如果源码包含对异步操作的支持,可以了解`FutureCallback`和`AsyncHttpClient`,学习如何实现非...

    java-http请求jar包

    HttpClient还支持其他高级功能,比如使用`CookieStore`管理Cookie,`RedirectStrategy`处理重定向,`PoolingHttpClientConnectionManager`管理连接池,以及通过`RequestConfig`自定义请求配置等。 在处理响应时,...

    org.apache.http.legacy.jar包

    5. 处理响应:解析响应状态码、响应头和响应体,进行相应的业务逻辑处理。 6. 关闭资源:完成操作后,记得关闭HttpClient实例,释放连接资源。 总结,`org.apache.http.legacy.jar`作为Apache HttpClient库的一部分...

    java爬虫下载表情包/gif等

    RequestConfig config = RequestConfig.custom().setProxy(proxy).build(); httpGet.setConfig(config); ``` 以上就是使用Java和Apache HttpClient库实现爬虫下载表情包或GIF图片的基本步骤。需要注意的是,进行网络...

    java 实现抓取自游网数据

    在压缩包中的"ziyou_Spiter"文件很可能是该项目的源代码,包含了具体实现这些步骤的Java类。如果你需要进一步了解代码实现细节,可以详细研究这个文件。总的来说,Java实现抓取自游网数据的过程涉及到网络请求、HTML...

    以httpclient方式提交数据

    发送请求后,我们需要解析服务器返回的响应。HttpClient的`CloseableHttpResponse`对象提供了访问响应状态码、头信息和响应体的方法。例如: ```java StatusLine statusLine = response.getStatusLine(); System...

    httpclient4.3所需jar包

    本知识点将详细介绍HTTPClient 4.3在爬虫开发中的应用及其主要组件。 一、HTTPClient 4.3的安装与...在实际开发中,还需要结合其他库,如Jsoup进行HTML解析,或者使用Guava进行缓存管理,以提高爬虫的效率和稳定性。

    HttpClient的小例子

    RequestConfig config = RequestConfig.custom() .setConnectTimeout(5000) .setSocketTimeout(5000) .build(); httpGet.setConfig(config); ``` 同时,HttpClient还支持连接池管理,通过`...

    org.apache.http.client.*;

    `EntityUtils`类提供了读取和解析实体内容的方法。 4. **连接管理**:HttpClient通过`HttpClientConnectionManager`管理HTTP连接,例如设置最大连接数、超时时间等。`PoolingHttpClientConnectionManager`是常用的...

    httpclient4.1.4 API

    `EntityUtils`类提供了方便的方法来读取和解析实体内容。 3. 处理器:`ResponseHandler`接口允许自定义处理响应的方式,例如,你可以实现这个接口来将响应转换为特定类型。 五、连接管理 HttpClient 4.1.4引入了...

    HttpClient教程

    - `EntityUtils`类提供方便的方法来读取和解析响应实体,如`EntityUtils.toString()`。 - 自定义`HttpEntity`实现,可以处理自定义格式的数据。 8. **异步操作** - HttpClient 4.5及以上版本引入了异步API,通过...

    用HttpClient来模拟浏览器的GET,POST

    RequestConfig config = RequestConfig.custom().setConnectTimeout(5000).setSocketTimeout(10000).build(); CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(new ...

    httpclient方式调用url

    总之,HttpClient是Java开发中处理HTTP请求的强大工具,它提供了一套完整的API来构建、发送和解析HTTP请求。通过理解和熟练使用HttpClient,开发者能够高效地与Web服务进行交互,处理各种复杂的网络请求场景。在项目...

Global site tag (gtag.js) - Google Analytics