`
JerryWang_SAP
  • 浏览: 1030538 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

Apache httpclient的execute方法调试

阅读更多

因为工作需要,想研究一下execute执行的逻辑。

在这一行调用execute:

response = getHttpClient().execute(get);

getHttpClient的实现:

private HttpClient getHttpClient() {
        if (this.m_httpClient == null) {
            this.m_httpClient = HttpClientBuilder.create().build();
        }
        return this.m_httpClient;
    }

我在代码里声明的HttpClient只是一个接口,

 

实现类是InternalHttpClient。

 

首先根据传入的请求决定出目标-target host

 

投递到RedirectExec执行。

 

后者又投递到RetryExec执行。

 

收到307重定向:

 

redirectsEnabled标志位为true:

 

再看当前的请求确实被redirect了吗?

 

original url:

 

我的后台服务器返回的307,落到了分支HttpStatus.SC_TEMPORARY_REDIRECT处:

 

看来Apache的库认为只有HEAD和GET才能被redirect:

 

重定向最大次数:50

 

准备重试了:

 

要获取更多Jerry的原创文章,请关注公众号"汪子熙"。

0
0
分享到:
评论

相关推荐

    apache httpclient源代码,eclipse查看源码

    - 在Eclipse 中,你可以通过"File" -> "Import" -> "Existing Projects into Workspace" 导入Apache HttpClient 4.5 的源代码项目。 - 将下载的压缩包解压,然后在导入对话框中选择解压后的目录,确保"Copy ...

    使用HttpClient调试android接口-通用方法

    在这个场景下,"使用HttpClient调试android接口-通用方法"的标题表明我们将讨论如何使用HttpClient来调试Android应用中的API接口。下面,我们将深入探讨HttpClient的基础知识、调试技巧以及如何封装通用方法。 1. *...

    Java中Httpclient需要的jar包(httpclient.jar,httpcore.jar及commons-logging.jar)

    接着,我们通过HttpClient的execute方法发送请求并获取响应。这个例子展示了HttpClient库的基本用法,实际应用中可能需要处理更复杂的场景,如设置请求头、处理响应内容、处理异常等。 总的来说,Apache HttpClient...

    httpclient

    5. **执行请求**:调用HttpClient对象的execute方法发送请求。 6. **处理响应**:获取HttpResponse对象,读取状态码,使用EntityUtils类处理响应实体,如读取内容或写入文件。 7. **关闭连接**:在完成操作后,...

    httpclient jar

    HttpClient使用它来记录执行过程中的一些信息,方便调试和问题定位。 三、使用HttpClient进行POST和GET 1. GET请求:通过HttpClient,我们可以轻松创建GET请求。首先,创建一个`HttpGet`对象,设置请求的URL,然后...

    最全最新httpclient4.3.3

    4. 执行请求:通过HttpClient的execute()方法发送请求。 5. 处理响应:使用HttpResponse获取响应码、头信息和实体内容。 四、HTTP抓包 在开发和调试过程中,使用HttpClient进行抓包是常见需求。你可以通过设置拦截...

    HTTPclient所需的jar

    接着,通过`execute`方法发送请求并获取`HttpResponse`对象,从中解析响应数据。整个过程可以通过`commons-logging`库进行日志记录,以便于问题排查。 总之,`HTTPclient所需的jar`文件集合是实现Java中高效、灵活...

    httpclient安卓版

    3. 执行请求:使用HttpClient的execute方法执行请求,并获取HttpResponse对象。 ```java HttpResponse response = httpClient.execute(httpGet); ``` 4. 处理响应:从HttpResponse中获取HttpEntity,读取响应数据。...

    httpclient发送post请求

    5. 执行请求:通过HttpClient的`execute`方法发送请求,并获取响应,`CloseableHttpResponse response = httpClient.execute(httpPost);` 6. 处理响应:检查响应状态码,读取响应内容,如`StatusLine statusLine = ...

    Httpclient 簡單測試程式

    5. **执行请求**:通过HttpClient的`execute`方法发送请求,并获取响应: ```java CloseableHttpResponse response = httpClient.execute(httpGet); ``` 6. **处理响应**:从`response`中读取状态码、响应头和...

    httpclient4.5源码学习

    1. **执行流程**:从 `HttpClient.execute()` 方法开始,通过 `HttpRequestExecutor.execute()` 将请求发送到服务器,并接收响应。 2. **连接管理**:`PoolingHttpClientConnectionManager` 负责连接的创建、复用和...

    Commons-HTTPClient组件介绍与使用

    例如,发送GET请求可以通过创建HttpGet对象,设置URL并执行execute方法来完成。发送POST请求则需要使用HttpPost对象,设置请求头部和实体内容。对于OPTIONS请求,HttpClient提供了OptionsMethod类,调用其...

    HttpClientTest.txt

    `HttpClientTest`工具类中的`httpGetRedirect`方法展示了如何使用Apache HttpClient库执行HTTP GET请求,并处理响应。通过该方法,我们可以轻松地与Web服务进行交互,这对于许多应用场景都非常有用,如数据抓取、API...

    httpclient4.3.x及其依赖jar包

    3. **执行请求**:调用HttpClient的execute方法发送请求。 4. **处理响应**:获取HttpResponse,并解析其状态码、头部和主体。 5. **关闭资源**:使用完毕后,记得关闭连接以释放系统资源。 总的来说,HttpClient...

    httpclient-4.5jar包

    3. 执行请求:通过HttpClient对象的execute方法发送请求,获取HttpResponse。 4. 处理响应:解析HttpResponse,获取状态码、响应头和响应体。 四、连接管理和池化 HttpClient 4.5提供了...

    HttpClient4.5.3资源

    - **基本使用**:创建HttpClient实例,通过HttpRequestBase创建请求对象,设置请求方法、URL、头信息等,然后使用HttpClient的execute方法发送请求并获取HttpResponse。 3. **文档资源**: - **英文文档**:...

    Java-HttpClient帮助文档

    Java HttpClient是Apache软件基金会的Apache HTTP Components项目中的一个核心组件,它提供了一个强大的、高度可定制的客户端HTTP通信API。这个工具广泛应用于Java开发者中,用于执行HTTP请求,获取响应,处理各种...

    HttpClient-4

    3. 使用`HttpClient`执行请求,通过`execute(HttpRequest)`方法发送请求。 4. 处理`HttpResponse`,获取状态码、头部信息和响应体。 5. 关闭连接,释放资源。 对于解析HTML,HttpClient本身并不提供HTML解析功能,...

Global site tag (gtag.js) - Google Analytics