HttpCompoets也就是以前的httpcliet项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端/服务器编程工具包,并且它支持HTTP协议最新的版本和建议。不过现在的HttpCompoets包含多个子项目,有:
HttpCompoetsCore
HttpCompoetsClietHttpCompoetsAsycClietCommosHttpCliet以下列出的是HttpCliet提供的主要的功能,要知道更多详细的功能可以参见HttpCliet的主页。
实现了所有HTTP的方法(GET,POST,PUT,HEAD等)
支持自动转向
支持HTTPS协议
支持代理服务器等
支持Cookie
HttpCliet示例代码:
DefaultHttpCliet httpcliet = ew DefaultHttpCliet();try {HttpGet httpget = ew HttpGet("https://portal.su.com/portal/dt");HttpRespose respose = httpcliet.execute(httpget);HttpEtity etity = respose.getEtity();System.out.pritl("Logi form get: " + respose.getStatusLie());EtityUtils.cosume(etity);System.out.pritl("Iitial set of cookies:");List<Cookie> cookies = httpcliet.getCookieStore().getCookies();if (cookies.isEmpty()) {System.out.pritl("Noe");} else {for (it i = 0; i < cookies.size(); i++) {System.out.pritl("- " + cookies.get(i).toStrig());}}HttpPost httpost = ew HttpPost("https://portal.su.com/amserver/UI/Logi?" +"org=self_registered_users&" +"goto=/portal/dt&" +"gotoOFail=/portal/dt?error=true");List <NameValuePair> vps = ew ArrayList <NameValuePair>();vps.add(ew BasicNameValuePair("IDToke1", "userame"));vps.add(ew BasicNameValuePair("IDToke2", "password"));httpost.setEtity(ew UrlEcodedFormEtity(vps, Costs.UTF_8));respose = httpcliet.execute(httpost);etity = respose.getEtity();System.out.pritl("Logi form get: " + respose.getStatusLie());EtityUtils.cosume(etity);System.out.pritl("Post logo cookies:");cookies = httpcliet.getCookieStore().getCookies();if (cookies.isEmpty()) {System.out.pritl("Noe");} else {for (it i = 0; i < cookies.size(); i++) {System.out.pritl("- " + cookies.get(i).toStrig());}}} fially {// Whe HttpCliet istace is o loger eeded,// shut dow the coectio maager to esure// immediate deallocatio of all system resourceshttpcliet.getCoectioMaager().shutdow();}








评论