posts - 2, comments - 1, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2008年2月1日

卡巴斯基的病毒库默认是安装在c盘,系统重装或者恢复以后就会丢失,增加了不少烦恼,更改卡巴斯基病毒库的默认位置就可以解决,方法如下:

1、先关掉卡巴的自我保护,将 C:\Documents and Settings\All Users\Application Data\Kaspersky
Lab 目录也就是默认病毒库移动到你需要的目录,如D:\Application Data\Kaspersky Lab

2、开始 ---运行 ---REGEDIT--打开注册表,找到下面两个键HKEY_LOCAL_MACHINE\SOFTWARE\KasperskyLab\AVP6\CKAHUM\LastSet\Directory
HKEY_LOCAL_MACHINE\SOFTWARE\KasperskyLab\AVP6\environment\DataRo
将值改为你需要的目录,如D:\Application Data\Kaspersky Lab

3、在整个注册表搜索AVP6,将所有的出现的C:\Documents and Settings\All Users\Application Data\Kaspersky Lab 值都改为D:\Application Data\Kaspersky Lab

posted @ 2008-02-27 09:39 wary 阅读(1049) | 评论 (1)编辑 收藏

参考http://www.ibm.com/developerworks/cn/opensource/os-httpclient/,以备个人学习所用

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

  • 实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
  • 支持自动转向
  • 支持 HTTPS 协议
  • 支持代理服务器等

HttpClient 基本功能的使用

GET 方法

使用 HttpClient 需要以下 6 个步骤:

1. 建 HttpClient 的实例

HttpClient httpClient = new HttpClient();

2. 创建某种连接方法的实例,在这里是 GetMethod。在 GetMethod 的构造函数中传入待连接的地址

GetMethod getMethod = new GetMethod("http://www.tom.com/");

3. 调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例

int statusCode = httpClient.executeMethod(getMethod);

if (statusCode ==HttpStatus.SC_OK) 则说明成功了

4. 读 response

byte[] responseBody = method.getResponseBody();

String responseBody = method.getResponseBodyAsString();

5. 释放连接。无论执行方法是否成功,都必须释放连接

method.releaseConnection();

6. 对得到后的内容进行处理

POST方法

根据RFC2616,对POST的解释如下:POST方法用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列(Request-Line)中请求URI所指定资源的附加新子项。POST被设计成用统一的方法实现下列功能:

  • 对现有资源的注释(Annotation of existing resources)
  • 向电子公告栏、新闻组,邮件列表或类似讨论组发送消息
  • 提交数据块,如将表单的结果提交给数据处理过程
  • 通过附加操作来扩展数据库

调用HttpClient中的PostMethod与GetMethod类似,除了设置PostMethod的实例与GetMethod有些不同之外,剩下的步骤都差不多。

注意:

(1)表单中的域用类NameValuePair来表示,该类的构造函数第一个参数是域名,第二参数是该域的值

(2)将表单所有的值设置到PostMethod中用方法setRequestBody

(3)HttpClient对于要求接受后继服务的请求,比如POST和PUT,不支持自动转发,因此需要自己对页面转向做处理

(4)301表示永久的移走(Moved Permanently),当返回的是301,则表示请求的资源已经被移到一个固定的新地方,任何向该地址发起请求都会被转到新的地址上。302表示暂时的转向,比如在服务器端的servlet程序调用了sendRedirect方法,则在客户端就会得到一个302的代码,这时服务器返回的头信息中location的值就是sendRedirect转向的目标地址。

String url = "http://www.abc.com";

PostMethod postMethod = new PostMethod(url);              

NameValuePair[] data = { new NameValuePair("id", "youUserName"),

new NameValuePair("passwd", "yourPwd") };

postMethod.setRequestBody(data);

int statusCode = httpClient.executeMethod(postMethod);

// 301或者302

if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY ||

statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {

// 从头中取出转向的地址

Header locationHeader = postMethod.getResponseHeader("location");

String location = null;

if (locationHeader != null) {

location = locationHeader.getValue();

System.out.println("The page was redirected to:" + location);

} else {

System.err.println("Location field value is null.");

}

return;

}

posted @ 2008-02-01 14:37 wary 阅读(441) | 评论 (0)编辑 收藏