在HttpMethodBase类中,关键方法1:
public int execute(HttpState state, HttpConnection conn)
throws HttpException, IOException {
LOG.trace("enter HttpMethodBase.execute(HttpState, HttpConnection)");
// this is our connection now, assign it to a local variable so
// that it can be released later
this.responseConnection = conn;
checkExecuteConditions(state, conn);
this.statusLine = null;
this.connectionCloseForced = false;
conn.setLastResponseInputStream(null);
// determine the effective protocol version
if (this.effectiveVersion == null) {
this.effectiveVersion = this.params.getVersion();
}
writeRequest(state, conn);
this.requestSent = true;
readResponse(state, conn);
// the method has successfully executed
used = true;
return statusLine.getStatusCode();
}
关键方法2:
protected void readResponse(HttpState state, HttpConnection conn)
throws IOException, HttpException {
LOG.trace(
"enter HttpMethodBase.readResponse(HttpState, HttpConnection)");
// Status line & line may have already been received
// if 'expect - continue' handshake has been used
while (this.statusLine == null) {
readStatusLine(state, conn);
processStatusLine(state, conn);
readResponseHeaders(state, conn);
processResponseHeaders(state, conn);
int status = this.statusLine.getStatusCode();
if ((status >= 100) && (status < 200)) {
if (LOG.isInfoEnabled()) {
LOG.info("Discarding unexpected response: " + this.statusLine.toString());
}
this.statusLine = null;
}
}
readResponseBody(state, conn);
processResponseBody(state, conn);//此方法为空,可以被子类覆写
}
看代码,http头是被httpclient直接处理的,但是body就没有处理了,直接保留了stream没有去读。
分享到:
相关推荐
总的来说,`commons-httpclient-3.1-rc1.jar`和`commons-logging.jar`这两个库在Java开发中起到了关键作用,它们简化了HTTP通信和日志记录的工作,提高了代码的可读性和可维护性。在实际项目中,这两个库经常与其他...
标题中的"commons-httpclient-3.1.jar"和"commons-codec-1.3.jar"是两个关键的Java库,它们在开发与HTTP协议相关的应用程序时扮演着重要角色。这两个库是Apache Commons项目的一部分,提供了丰富的功能来处理HTTP...
描述中提到的“包括commons-codec-1.3, commons-httpclient-3.1, commons-logging-1.1.1”是指这个包内包含的三个关键依赖库: 1. **Commons Codec 1.3**:这是Apache Commons项目的一个子项目,提供了各种编码和...
提及的文档包含了两个主要版本:`commons-httpclient-3.1.chm` 和 `httpcomponents-client-4.0.1`。`commons-httpclient-3.1` 是较旧的一个版本,属于 Apache Commons HttpClient 项目,而 `httpcomponents-client-4...
与POST不同,PUT方法通常需要两个参数:一个标识要更新的资源的ID,另一个是包含新数据的对象。前者通常通过查询字符串传递,后者则通过`FromBody`标记。 示例: ```csharp public IHttpActionResult Put(int id, ...
在您提供的信息中,"commons-httpclient包"和"ksoap2-android-assembly包"正是两个关键的组件,它们分别处理HTTP通信和SOAP协议的解析。 **Apache Commons HttpClient** Apache Commons HttpClient是一个成熟的...
标题和描述中提到的“国产化之银河麒麟.netcore3.1 访问 https 服务的两个问题”主要涉及在银河麒麟操作系统上使用 .NET Core 3.1 进行 HTTPS 通信时遇到的挑战。这两个问题分别是: 1. **无法验证证书的由颁发者...
在本文中,我们将深入探讨`commons-httpclient-3.1.0.jar`这一版本,它是Apache HttpClient的一个关键里程碑,为开发者提供了丰富的功能来处理HTTP通信。 ## 1. HttpClient简介 HttpClient是Apache软件基金会的...
例如,如果JSON数组中的每个元素包含"标题"和"内容",则创建一个`MyDataModel`类,包含这两个属性。 5. **填充ListView**: - ListView:ListView是Android中的一个视图组件,用于展示可滚动的列表数据。我们需要...
本篇文章将详细讲解标题中提到的"网络爬虫JAVA扩展包",包括其中包含的几个关键组件:`commons-httpclient-3.1.jar`、`htmllexer.jar`和`htmlparser.jar`,以及它们在网络爬虫开发中的作用。 首先,`commons-...
在本文中,我们将详细探讨如何利用这两个库来实现一个简单的网络爬虫。 首先,你需要在开发环境中配置好所需的库。对于 Java HttpClient,你需要导入 Commons-httpClient3.1.jar,而对于 HTML 解析,你需要 ...
6. **signpost-core-1.2.1.1.jar** 和 **signpost-commonshttp4-1.2.1.1.jar**:这两个是OAuth库的版本,用于处理OAuth认证。在微博API中,OAuth是常见的安全机制,用来授权第三方应用访问用户的信息。Signpost库...
这两个库提供了SIP协议栈的实现,使得开发者能够方便地创建和管理SIP会话。 4. **log4j-1.2.8.jar**:这是一个广泛使用的日志记录框架,用于收集和记录应用程序运行时的信息。在VoIP系统开发中,日志记录对于调试和...
9. JSON Pointer和JSON Patch:这两个概念可能在高级JSON操作中涉及。JSON Pointer是一个字符串,用于表示JSON文档中的某个特定位置,而JSON Patch则是一组操作,用于修改JSON文档。 通过阅读这篇"JSON学习笔记",...
在IT行业中,数据管理和分析是至关重要的,而DataGrid和Hive是两个常见的工具。DataGrid主要用于缓存和分布式计算,而Hive则是一个基于Hadoop的数据仓库系统,用于存储和处理大规模数据集。本篇将详细介绍如何使用...
这个jar包包含了两个关键组件:`org.activiti.designer.libs-5.18.0.jar` 和 `org.activiti.designer.kickstart.eclipse-5.18.0.jar`,它们分别服务于不同的目的。 1. **org.activiti.designer.libs-5.18.0.jar**:...
- 布尔值(Boolean):有两个值,`true` 和 `false`。 - null:只有一个值 `null`,表示空或无。 在Java中使用JSON,通常需要引入相关的库,如JSON Lib。在上述描述中提到了一系列的jar包,如`commons-lang.jar`,...
SpringMVC和MyBatis是两个非常流行的Java开发框架,它们在企业级应用开发中扮演着重要的角色。SpringMVC是Spring框架的一部分,主要用于构建Web应用程序的Model-View-Controller结构,而MyBatis则是一个轻量级的持久...