使用HttpClient3.1提交表单

一般步骤:

1. 创建 HttpClient 的实例

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

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

4. 读 response

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

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

代码如下:


HttpClient httpClient = new HttpClient();                                        //构造HttpClient的实例


GetMethod getMethod = new GetMethod("http://www.ibm.com/");    //创建GET方法的实

try {


int statusCode = httpClient.executeMethod(getMethod);      //执行getMethod


String response = getMethod.getResponseBodyAsString();            //读取服务器返回的页面代码,这里用的是
字符读法

}catch (HttpException e) {


System.out.println("Please check your provided http address!");  //发生致命的异常,可能是协议不对或者返回

的内容有问题


e.printStackTrace();


} catch (IOException e) {                              //发生网络异常

e.printStackTrace();


} finally {                                                          //释放连接


getMethod.releaseConnection();


}

二,模拟POST方法提交表单。

 

1)一般POST表单,最简单的示例

PostMethod post = new PostMethod();NameValuePair[] pairs = new NameValuePair[2];          //设置FORM表单里各项内容

pairs[0] = new NameValuePair("para1", "value1");

pairs[1] = new NameValuePair("para2", "value2");

post.setRequestBody(pairs);                           //将设置好的表单提交上去HttpClient client = new HttpClient();                 try {   

          client.executeMethod(post);                      //执行,模拟POST方法提交到服务器    }

 

       catch (HttpException e) {      e.printStackTrace();    }

       catch (IOException e) {      e.printStackTrace();    }

     finally{      post.releaseConnection();                

                                         }

 

2)带附件的POST表单提交,   最主要的类是Part(代表一种post object),它有二个比较重要的子类:FilePart和StringPart,一个   是文件的参数,另一个就是普通的文本参数。它的典型使用方法如下:

   String url = "http://localhost:8080/HttpTest/Test";  

 PostMethod postMethod = new PostMethod(url);         

StringPart sp = new StringPart("TEXT", "testValue");  

 FilePart fp = new FilePart("file", "test.txt", new File("./temp/test.txt"));        

 MultipartRequestEntity mrp=                      new MultipartRequestEntity(                         new Part[]{sp, fp}, postMethod.getParams());  

 postMethod.setRequestEntity(mrp);                 

  HttpClient httpClient = new HttpClient();    

try {         httpClient.executeMethod(postMethod);      }

catch (HttpException e) {           e.printStackTrace();      }

catch (IOException e) {           e.printStackTrace();        }

finally{      postMethod.releaseConnection();      }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值