天天看点

java类模拟客户端调用servlet (httpClient)

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;

import org.apache.commons.httpclient.HttpClient;

import org.apache.commons.httpclient.HttpException;

import org.apache.commons.httpclient.HttpStatus;

import org.apache.commons.httpclient.methods.PostMethod;

import org.apache.commons.httpclient.params.HttpMethodParams;

......

// 构造HttpClient的实例

 HttpClient httpClient = new HttpClient();

 // 创建GET方法的实例

 PostMethod postMethod = new PostMethod(url + "servlet/getUrlAddress?");

 // 使用系统提供的默认的恢复策略

 postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,

   new DefaultHttpMethodRetryHandler());

 postMethod.addParameter("username",URLEncoder.encode(username));

 postMethod.addParameter("password",URLEncoder.encode(password));

 try {

  // 执行postMethod

  int statusCode = httpClient.executeMethod(postMethod);

  if (statusCode != HttpStatus.SC_OK) {

   System.err.println("Method failed: " + postMethod.getStatusLine());

  }

  // 读取内容

  String responseBody = new String(postMethod.getResponseBody());

  // 处理内容

  //System.out.println("servlet返回的内容 : " + responseBody);

 } catch (HttpException e) {

  // 发生致命的异常,可能是协议不对或者返回的内容有问题

  System.out.println("Please check your provided http address!");

  e.printStackTrace();

 } catch (IOException e) {

  // 发生网络异常

 } finally {

  // 释放连接

  postMethod.releaseConnection();

 }

....