httpclient 如何保持会话
来源:互联网 发布:iphone6s不能更新软件 编辑:程序博客网 时间:2024/05/17 13:42
在实际的应用中,我们的联网应用程序里应该有一个HttpClient,并将其用于所有的HTTP通信。这就可能在同一个Http Client同时发出多个请求,也就产生了多线程的问题。幸运的是,在HttpClient里提供了一些工具来简化了这一个任务。下面我们看看使用ThreadSafeClientConnManager来创建DefaultHttpClient
private HttpClient createHttpClient(){
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",PlainSocketFactory.getSocketFactory(),433));
ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params,schReg);
return new DefaultHttpClient(conMgr,params);
};
这样就完成了多线程的HttpClient的创建.
httpClient 想要保持回话,每一次连接时候 都必须是同一个 httpClient,也就是说 你第一次登陆时候使用的httpClient 和以后再次访问使用的httpClient必须是同一个。
DefaultHttpClient httpclient =
createHttpClient();
try
{
HttpPost httpost =
new
HttpPost(url);
// 添加参数
List<NameValuePair> nvps =
new
ArrayList<NameValuePair>();
if
(params !=
null
&& params.keySet().size() >
0
) {
Iterator iterator = params.entrySet().iterator();
while
(iterator.hasNext()) {
Map.Entry entry = (Entry) iterator.next();
nvps.add(
new
BasicNameValuePair((String) entry.getKey(),
(String) entry.getValue()));
}
}
//设置请求的编码格式
httpost.setEntity(
new
UrlEncodedFormEntity(nvps, Consts.UTF_8));
//登录一遍
httpclient.execute(httpost);
//然后再第二次请求普通的url即可。
httpost =
new
HttpPost(url2);
BasicResponseHandler responseHandler =
new
BasicResponseHandler();
System.out.println(httpclient.execute(httpost, responseHandler));
}
finally
{
// 关闭请求
httpclient.getConnectionManager().shutdown();
}
- httpclient 如何保持会话
- HttpClient cokie会话保持
- httpclient 保持会话的交互
- httpClient 4.2 保持会话session
- httpclient 保持会话的交互
- 如何保持http会话
- Httpclient的会话保持引起的线程安全问题
- HttpClient 模拟登陆,保持会话并进行后续操作
- HttpClient 模拟登陆,保持会话并进行后续操作
- 会话保持
- 浏览器禁用cookie后php如何保持session会话
- 负载均衡如何保持用户会话信息同步
- 粘滞会话、会话保持
- F5的会话保持
- F5的会话保持
- 会话保持的英文翻译
- volley session 保持会话
- 会话保持功能介绍
- C++输入cin详解
- BUPTOJ85 Three Points On A Line
- ios basic 2.2:working with foundation
- Qt第三方库QML-Box2D——使用它创建一个飞翔的蝙蝠
- Mac来了
- httpclient 如何保持会话
- 直接在DataGridView中添加修改数据的问题
- win7 右下角显示时间日期
- cogs 数列
- eclipse的快捷键
- j2ee环境搭建
- 分享TopCoder的一道题目和个人答案
- Codeforces Round #236 (Div. 2) A. Nuts
- s3c2440系统时钟