Java模拟POST表单提交HttpClient操作

public static void Login() {
       String url = "http://www.***.com/login";
       PostMethod postMethod = new PostMethod(url);
       // 填入各个表单域的值
       NameValuePair[] data = {
               new NameValuePair("account", "[email protected]"),
               new NameValuePair("nextUrl", ""),
               new NameValuePair("lcallback", ""),
               new NameValuePair("password    ", "******"),
               new NameValuePair("persistent", "1"), };
       // 将表单的值放入postMethod中
       postMethod.setRequestBody(data);
       // 执行postMethod
       int statusCode = 0;
       try {
           statusCode = httpClient.executeMethod(postMethod);
       } catch (HttpException e) {
           e.printStackTrace();
       } catch (IOException e) {
           e.printStackTrace();
       }
       // HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发
       // 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("diandianLogin:" + location);
           } else {
               System.err.println("Location field value is null.");
           }
           return;
       } else {
           System.out.println(postMethod.getStatusLine());
           String str = "";
           try {
               str = postMethod.getResponseBodyAsString();
           } catch (IOException e) {
               e.printStackTrace();
           }
           System.out.println(str);
       }
       postMethod.releaseConnection();
       return;
   }





其中需要的jar包:

1、 commons-httpclient.jar

2、commons-codec.jar

3、commons-logging.jar

 开发者博客www.developsearch.com

你可能感兴趣的:(httpclient)