关于HttpClient的使用
1.如果应用程序需要执行多个HTTP调用,则应该创建一个为所有HTTP请求服务的HttpClient,可以将HttpClient关联到Android的应用程序对象中
2.HttpClient同时发出多个请求可能引起的多线程问题,可以使用ThreadSafeClientConnManager创建DefaultHttpClient
主要代码:
public class ApplicationHc extends Application{
private static final String TAG = "ApplicationHc";
private HttpClient httpClient;
@Override
public void onCreate() {
super.onCreate();
httpClient = createHttpClient();
}
@Override
public void onLowMemory() {
super.onLowMemory();
shutdownHttpClient();
}
@Override
public void onTerminate() {
super.onTerminate();
shutdownHttpClient();
}
//创建HttpClient对象
private HttpClient createHttpClient(){
Log.i(TAG, "Create HttpClient...");
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.DEFAULT_CONTENT_CHARSET);
HttpProtocolParams.setUseExpectContinue(params, true);
SchemeRegistry schReg = new SchemeRegistry();
schReg.register(new Scheme("http",PlainSocketFactory.getSocketFactory(),80));
schReg.register(new Scheme("https",SSLSocketFactory.getSocketFactory(),443));
ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schReg);
return new DefaultHttpClient(conMgr,params);
}
//关闭HttpClent
private void shutdownHttpClient(){
if(httpClient !=null && httpClient.getConnectionManager()!=null){
httpClient.getConnectionManager().shutdown();
}
}
public HttpClient getHttpClient(){
return httpClient;
}
}
在Activity中使用:
private String getHttpContent(){
String con = null;
try{
ApplicationHc app= (ApplicationHc)this.getApplication();
HttpClient client = app.getHttpClient();
HttpGet get = new HttpGet();
get.setURI(new URI("http://www.google.com/ig/api?weather=Guangzhou"));
HttpResponse response = client.execute(get);
con = EntityUtils.toString(response.getEntity());
}catch (Exception e) {
e.printStackTrace();
}
return con;
}
修改AndroidManifest.xml
<application android:icon="@drawable/icon" android:label="@string/app_name" android:name= ".ApplicationHc">
分享到:
相关推荐
NULL 博文链接:https://eric-wyf.iteye.com/blog/1179729
4、多线程下载:使用RandomAccessFile输出流写 5、多线程下载-断点续传:使用临时文件记录当前下载的数据,下次读取文件开始下载 6、下载显示进度条-ProgressBar 7、在gitbub上面下载已经有支持断点续传功能的代码...
这个比xutils强多了。用过服务端交互框架的都知道
NULL 博文链接:https://theoffspring.iteye.com/blog/1610345
httpclient post例子,多线程
主要介绍了使用java的HttpClient实现多线程并发的相关资料,需要的朋友可以参考下
HttpClient下载数据 图片,string 使用get请求数据
简单实现的源码,不会自动判断断点恢复,需要手动注释掉相应代码。 博文链接:https://calmness.iteye.com/blog/220075
HttpClient多线程网络下载 经典案例源代码
NULL 博文链接:https://zywang.iteye.com/blog/916489
HttpClientGoodies.NET .NET HttpClient的一组有用的实用程序。 安装Install-Package HttpClientGoodies的用途是什么? 这些小而有用的实用程序将使HttpClient的生活变得更加轻松。HttpClientGoodies.NET一组.NET ...
NULL 博文链接:https://hrsvici412.iteye.com/blog/789460
多线程代理IP池,一直看到有关这方面的技术,最近实现了一个。简单的来说,启动后,会一直定时的获取代理ip,并自动检测代理ip的活跃度。运用多线程的技术,在极短的时间内获取大量的ip进行筛选。架构也比较清楚,...
封装基础的QTcpSocket、QThread...服务器监听后,每新来一个连接起一个线程,完全线程独立; 通过socketDescrptor传递socket; 不建议工程中使用该种模式,这只是一个简单的demo学习了解即可; 实际工程开发建议boost;
httpclient4.3的二次封装,解决了代理问题、多线程问题、SSL问题、通用的get、post请求
java 多线程抓取去哪儿qunar机票数据,依赖 httpclient ,jsoud 等jar 包
很多公司使用另开线程池的方式进行异步调用来解决tomcat线程阻塞问题。但由于本系统中接口网络太不稳定,使用线程池也将导致线程池中的线程不断加大,不管使用怎样的线程池策略,最终要么线程池线程全部挂起,要么...
9. 连接管理器支持多线程应用。支持设置最大连接数,同时支持设置每个主机的最大连接数,发现并关闭过期的连接。 10. 自动处理Set-Cookie中的Cookie。 11. 插件式的自定义Cookie策略。 12. Request的输出流可以避免...
这个是一个httpclient模拟发送请求的例子,请求对象是12306,我只写到了登录和查询从...希望有人可以在我的基础上修改成多线程,在确定买那个车次的票的时候可以无限制抢票知道票没有。最后希望大家能开心过年,浪心