http协议详解(7)
发布时间:2021-06-07
发布时间:2021-06-07
http协议详解 ,详细介绍HTTP协议的用法。
程序运行时的活动日志记录的类。
3、commons-codec-1.3.jar: 包括编码解码的类。
这些包都是Apache的开源项目,可以在Apache开源组织官网/上找到。
3.2 HttpClient实现HTTP协议基本通信操作
在实现所有操作之前必须首先实例化一个HttpClient,即初始化一个客户端。
HttpClient client = new HttpClient();
3.2.1 请求
以GET请求为例。
a、实例化一个请求方法。
HttpMethod method = new GetMethod("");
注:
① 虽然Google已经将服务器搬出了大陆,但是HttpClient可实现自动转向,即自动重定向。所以当服务器返回的状态代码为3××时,将自动重定向,知道到达文件实际位置)。
② GetMethod构造函数中的字符串表示的是文件的URI地址。这里只是因为之前没有指定服务器主机地址,所以需要完整名。其实也可以这样:
client.getHostConfiguration().setHost("", 80, "http");
……
HttpMethod method = new GetMethod("/simcard.php?simcard=1330227");
b、添加需要的消息报头信息。
method.addRequestHeader("Range", "bytes=500-");
HttpClient会构建必须的消息报头信息,如果没有特殊要求可以不用修改。但如果需要在消息报头添加一些特殊信息,例如下载时需要断点续传等,则可用上述方法修改。
c、发出请求(执行命令)。
int statusCode = client.executeMethod(method);
此时,程序实际向服务器发出请求,连接成功后,函数返回,返回值为状态代码。
3.2.2 响应
接上例。
a、返回状态代码。
上例中的“statusCode”即为状态代码。除此方法之外,还可以:
int statusCode = method.getStatusCode();
注:在httpclient的包中有一个名为“HttpStatus”类,其中定义了大多数的状态代码。如:
HttpStatus.SC_OK
HttpStatus.SC_FORBIDDEN 等。
b、响应报头。
Header[] headers = method.getResponseHeaders();
获取所有服务器端返回的响应报头。
Header header = method.getRequestHeader("Content-Type");
获取响应报头中指定的键值对。
之后可以通过调用header.getName()、header.getValue()来得到相关信息。
c、响应正文。
byte[] bytes = method.getResponseBody();
InputStream inputStream = method.getResponseBodyAsStream();
String string = method.getResponseBodyAsString();
以上三种方法,视情况选用。
3.2.
3 断开连接
method.releaseConnection();
断开连接。
3.2.4 其他
其他包括一些和下载无关,但却非常基本和有用的东西
a、POST数据。
POST请求和GET请求大致相同,唯一需要注意的是,如何在POST信息中加入自己所需传
上一篇:上海工程技术大学金融学