HttpClient使用

上一篇 / 下一篇  2014-06-17 16:37:26 / 个人分类:接口测试

最近在研究接口测试,所以学习httpclient做测试

首先来看一个Get请求的非常简单的例子:

  1. try {  
  2.     HttpClient client = new HttpClient();//定义client对象  
  3.     client.getHttpConnectionManager().getParams().setConnectionTimeout(2000);//设置连接超时时间为2秒(连接初始化时间)  
  4.     GetMethod method = new GetMethod("http://www.google.com.hk/");//访问下谷歌的首页  
  5.     int statusCode = client.executeMethod(method);//状态,一般200为OK状态,其他情况会抛出如404,500,403等错误  
  6.     if (statusCode != HttpStatus.SC_OK) {  
  7.        System.out.println("远程访问失败。");  
  8.     }  
  9.     System.out.println(method.getResponseBodyAsString());//输出反馈结果  
  10.     client.getHttpConnectionManager().closeIdleConnections(1);  
  11. }catch(....) {.....}  


注意,上述反馈结果可能和你用一个socket去模拟一些系统没有什么区别,因为返回的内容没有任何价值,都是页面标签,当你和另一个系统交互时,它做response数据时,可以返回指定的json、xml等格式,用处就非常好用了,下面还会提及到它的好处;注意,采用GET方法,参数放在URL上面,要将非英文字符传递过去,需要对数据进行编码,如:

  1. String url = "http://www.xxx.xxx.com/xxx?name=" + URLEncoder.encode("谢宇" , "GBK") + "&otherName=" + URLEncoder.encode("谢宇" , "GBK") ;  

其中URLEncoder使用apache或jdk自带的均可。


顺便再写个POST的例子:

  1. try {  
  2.     HttpClient client = new HttpClient();//定义client对象  
  3.     client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "GBK");//指定传送字符集为GBK格式  
  4.     client.getHttpConnectionManager().getParams().setConnectionTimeout(2000);//设置连接超时时间为2秒(连接初始化时间)  
  5.     PostMethod method = new PostMethod("http://www.xxx.xxx.com/aaa/bbb.do");  
  6.     method.setRequestBody(new NameValuePair[] {  
  7.                   new NameValuePair("name" , "谢宇"), new NameValuePair("otherName" , "谢宇")  
  8.     });  
  9.     int statusCode = client.executeMethod(method);  
  10.     if (statusCode != HttpStatus.SC_OK) {  
  11.        System.out.println("远程访问失败。");  
  12.     }  
  13.     System.out.println(method.getResponseBodyAsString());//输出反馈结果  
  14.     client.getHttpConnectionManager().closeIdleConnections(1);  
  15. }catch(....) {.....}  


可以看出,Post的例子和Get差不多,唯一的区别是传入参数的方法post采用了单独逐个写参数的方法,而get是在URL上面。


因为实际中我们有时候需要cookie一直重复使用的,所以需要做设置,

HttpClient httpClient = new HttpClient();

httpClient.getParams().setCookiePolicy(CookiePolicy.RFC_2109);

上面这段代码表示只要httpClient这个实例化对象没有变化,cookie可以一直重复使用


TAG:

 

评分:0

我来说两句

Open Toolbar