`
ostrichmyself
  • 浏览: 38746 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Httpclient4.0 学习之四: 功能封装

阅读更多
考虑到公司的学习, 这里主要对一些HttpClient的基本功能实现封装, 封装成自己的API,供后续应用进行调用。

这里面会采用回帖的方式进行更新。

处理Entity的实例

/*
 * ====================================================================
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation.  For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 *
 */

package org.apache.http.examples.client;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

/**
 * 第二个例子 This example demonstrates the recommended way of using API to make sure
 * the underlying connection gets released back to the connection manager.
 */
public class ClientConnectionRelease {

	public final static void main(String[] args) throws Exception {
		HttpClient httpclient = new DefaultHttpClient();

		HttpGet httpget = new HttpGet("http://www.apache.org/");
		HttpResponse response = httpclient.execute(httpget);
		
		HttpEntity entity = response.getEntity();
		try {
			StringBuffer sb = processEntity(entity);
			System.out.println(sb);
		} catch (RuntimeException ex) {
			httpget.abort();
			throw ex;

		}
		httpclient.getConnectionManager().shutdown();
	}

	/**
	 * 处理一个实体
	 * @param entity
	 */
	private static StringBuffer processEntity(HttpEntity entity) 
	{
		StringBuffer sb = new StringBuffer();
		InputStreamReader iReader = null;
		try {
		        InputStream inputStream = entity.getContent();
			iReader = new InputStreamReader(inputStream);
			BufferedReader reader = new BufferedReader(iReader);
			String line = null;
			// 用reader.ready()是不行的
			while ((line = reader.readLine()) != null) {
			sb.append(line + "\r\n");
			}
		      } 
                      catch (Exception ex) {
			    ex.printStackTrace();
		      } finally 
                       {
				try {
					iReader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			return sb;
		}

}

分享到:
评论
3 楼 稍纵即逝 2011-03-23  
这个玩意居然用到了android上了,好奇怪
2 楼 ostrichmyself 2009-09-01  
4.0中HttpClient不再是一个类,而是一个接口了,

4.0跟3.X的版本相比, 不但底层做了修改,高层架构也做了调整。 并且在Android项目中应用到了4.0, 应该比之前的版本更加稳定。
1 楼 kingxip 2009-08-31  
httpclient4.0 还有httpclint这个类么?

相关推荐

    Android 4.0 网络编程详解 王家林.pdf

    4. 使用Apache HttpClient:尽管Android 4.0中HttpURLConnection足以满足基本的网络请求需要,但一些开发者可能还会选择使用第三方库,比如Apache HttpClient,它提供了更多灵活的网络请求方式和更强大的功能。...

    httpcomponents-core-4.0-bin.zip

    HttpComponents Core 4.0 设计为模块化,可以与其他Apache HttpComponents项目(如HttpClient和HttpServer)无缝集成,实现完整的HTTP客户端和服务器功能。同时,它的API设计易于扩展,允许开发者自定义处理器、拦截...

    HttpHelper万能框架V1.0-.net4.0版

    《HttpHelper万能框架V1.0-.NET4.0版详解》 HttpHelper框架是.NET开发者们在处理HTTP请求时经常会用到的一种工具,它为开发者提供了方便、高效的HTTP客户端服务,使得发送GET、POST等请求变得轻而易举。此框架版本...

    Spring for Android 2 中文 参考手册 中文文档

    在Android平台上,标准的J2SE设施通过SimpleClientHttpRequestFactory进行封装,而HttpClient则通过HttpComponentsAndroidClientHttpRequestFactory封装。建议在Android 2.3(Gingerbread)及以上版本使用J2SE工具,...

    java调用webservice的axis2.jar包

    8. httpcore-4.0.jar:Apache HTTP Core库,提供了HTTP协议的基本实现,是HttpClient库的基础。 9. axiom-dom-1.2.10.jar:AXIOM的DOM实现,用于处理DOM树结构。 三、调用WebService流程 1. 获取WSDL:首先,你需要...

    httpasyncclient jar包

    6. **ConnPoolControl**: 提供了连接池管理的功能,允许开发者控制连接的数量、超时和重用策略,以优化性能和资源利用率。 7. **SSLContext**: 支持HTTPS通信,允许配置SSL/TLS协议和证书,以确保安全的网络通信。 ...

    system.net.http.dll

    它们封装了请求头、请求方法、URL、请求内容以及响应状态码、响应头、响应内容等信息。在进行复杂HTTP交互时,开发者通常会直接操作这两个对象来定制请求和处理响应。 3. **HttpContent类**:`HttpContent`是表示...

    c# http协议,实现get或post发送请求 并返回内容

    using (var httpClient = new HttpClient()) { using (var response = await httpClient.GetAsync(url)) { response.EnsureSuccessStatusCode(); return await response.Content.ReadAsStringAsync(); } } }...

    http源代码

    HttpClient是HttpCore的重要组成部分,提供了完整的HTTP客户端功能。它允许用户自定义请求头、处理重定向、管理Cookie等,同时还支持各种HTTP方法如GET、POST等。 4. **HttpConnection接口** HttpConnection接口...

    WeatherReport

    另外,`SoapHttpClientProtocol`(在.NET Framework 4.0及以后版本中被`HttpClient`类取代)是调用SOAP Web服务的标准方式。 1. **获取天气预报** 要调用提供天气预报的Web Service,你需要知道其WSDL(Web ...

    httphelper类

    在.NET框架的不同版本(如2.0和4.0)中,`HttpHelper`可能有略微不同的实现,但核心功能保持一致,即提供对HTTP协议的抽象和封装。 以下是对`HttpHelper`类主要知识点的详细说明: 1. **发起HTTP请求** `...

    vS2008C#写的http下载器

    在IT行业中,开发一款能够高效、稳定下载大文件的工具至关重要,尤其是在网络环境不稳定的情况下。本篇文章将深入探讨如何利用Visual ...而“MyHttpbeta4.0”这个文件很可能是该项目的源码,供学习者参考和研究。

    个人系统截图

    - 封装:通过访问修饰符(public, private, protected等)来隐藏数据,防止外部代码直接访问,实现数据安全。 - 继承:子类继承父类的属性和方法,实现代码复用和扩展。 - 多态:同一操作作用于不同的对象,可以...

    使用C#控制SqueezeBox服务器(VS2010)-第1部分

    总的来说,通过结合C# 4.0的异步编程特性和对SqueezeBox服务器API的利用,我们可以构建功能丰富的音乐管理应用,使用户能从任何地方控制他们的音乐库。这不仅是一个学习C#和HTTP通信的好项目,也是提升软件开发技能...

    .Net整合Json实现REST服务客户端的方法详解

    前言 本文主要给大家介绍了关于.Net整合Json实现REST服务客户端的相关内容,分享出来供大家参考...1. HttpClientUtil.cs 封装REST方法 using Newtonsoft.Json; using System; using System.Collections.Generic; u

    resttemplate

    `RestTemplate`是Spring框架中的一个核心组件,主要用于发送HTTP请求和处理响应,它是Spring对Java的HttpURLConnection、Apache HttpClient以及 Ning Async Http Client等HTTP客户端的抽象封装,提供了丰富的API来...

    ASP_NET Web服务高级编程(上)

    在.NET环境中,可以使用SoapHttpClientProtocol类(在.NET Framework早期版本)或者HttpClient类(在.NET Framework 4.0及更高版本)来创建客户端代理,自动处理SOAP请求和响应。 ASP.NET Web服务不仅支持SOAP协议...

    多线程采集C#源代码

    此外,`Task`和`async/await`是C# 4.0引入的异步编程模型,它们在多线程采集中有广泛的应用。`Task`代表一个异步操作,而`async/await`则简化了异步编程的语法,使代码更加直观和易于理解。通过异步编程,我们可以让...

    JAVA上百实例源码以及开源项目源代码

    简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!...

Global site tag (gtag.js) - Google Analytics