HttpClient的学习

本文介绍了Apache HttpClient的功能特性,包括支持多种HTTP方法、自动重定向、HTTPS及代理服务器等功能。通过示例代码展示了如何使用HttpClient进行GET和POST请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[size=large]HttpClient简介[/size]

HttpClient是Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。

[size=large]HttpClient功能介绍[/size]

以下列出的是HttpClient提供的主要的功能:
1.实现了所有HTTP的方法(GET,POST,PUT,HEAD等)
2.支持自动转向
3.支持HTTPS协议
4.支持代理服务器等
更多功能可参见[url]http://wiki.apache.org/jakartahttpclient/HttpClientPowered[/url].
以下是实现代码:
package com.httpclient;

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


public class HttpClientTest{
private static final Log log = LogFactory.getLog(HttpClientTest.class);

public static void main(String[] args){
HttpClient httpClient=null;
HttpMethod method=null;
try{
//构造HttpClient实例,默认构造函数就已经够用了.
httpClient=new HttpClient();
// Get方法的调用
// GetMethod getMethod = new GetMethod("http://www.baidu.com");
// httpClient.executeMethod(getMethod);
// getMethod.getStatusCode();
// log.info("Message ->"+getMethod.getResponseBodyAsString());

//POST方法的调用
httpClient.getHostConfiguration().setHost("http://www.sina.com",80,"http");
method = getPostMethod();

int statusCode = httpClient.executeMethod(method);
log.debug("StatusCode->"+statusCode);
log.info("StatusLine->"+method.getStatusLine());
String msg = method.getResponseBodyAsString();
log.info("Message->"+msg);
}catch(IOException e){
log.info("IOException :" +e.getMessage());
}finally{
//无论怎样method都必须release.
if(method!=null) method.releaseConnection();
}
}

public static HttpMethod getPostMethod(){
PostMethod post = new PostMethod("/main.jsp");
//设置所需的参数
NameValuePair username=new NameValuePair("loginId","123");
NameValuePair password=new NameValuePair("password","123456");
post.setRequestBody(new NameValuePair[]{username,password});
return post;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值