Java post 请求

 1 import java.io.BufferedReader;
 2 import java.io.IOException;
 3 import java.io.InputStream;
 4 import java.io.InputStreamReader;  
 5 
 6 
 7 
 8 import org.apache.commons.httpclient.Header;
 9 import org.apache.commons.httpclient.HttpClient;
10 import org.apache.commons.httpclient.HttpException;
11 import org.apache.commons.httpclient.HttpStatus;
12 import org.apache.commons.httpclient.NameValuePair;
13 import org.apache.commons.httpclient.cookie.CookiePolicy;
14 import org.apache.commons.httpclient.methods.PostMethod;
15 
16 public class Dopost {
17     public String callHttpPost(String url,NameValuePair[] postData){        
18         HttpClient httpclient = new HttpClient();
19         PostMethod postMethod = new PostMethod(url);                  
20         try{    
21             postMethod.addParameters(postData);
22             postMethod.getParams().setParameter("http.protocol.cookie-policy", CookiePolicy.BROWSER_COMPATIBILITY);    
23             int statusCode = httpclient.executeMethod(postMethod);
24             if(statusCode == HttpStatus.SC_MOVED_TEMPORARILY  ||   
25                     statusCode == HttpStatus.SC_MOVED_TEMPORARILY){
26                 Header locationHeader = postMethod.getResponseHeader("Location");
27                 String location = null;
28                 if(locationHeader != null){
29                     location = locationHeader.getValue();
30                 }
31                 postMethod = new PostMethod(location);                            
32                 postMethod.setRequestBody(postData);
33                 postMethod.getParams().setParameter("http.protocol.cookie-policy",CookiePolicy.BROWSER_COMPATIBILITY);
34                 int statusCode1 = httpclient.executeMethod(postMethod);
35                 if(statusCode1 != HttpStatus.SC_OK){
36                     return "postError01:重定向访问没有成功!";
37                 }
38             }
39             if(statusCode != HttpStatus.SC_OK){
40                 return "postError02:访问没有成功!";
41             }
42             InputStream responseBody = postMethod.getResponseBodyAsStream();
43             BufferedReader reader = new BufferedReader(new InputStreamReader(responseBody,"utf-8"));
44             String line = reader.readLine();
45             String repose="";
46             while(line != null){
47                 repose+=new String(line.getBytes());
48                 line = reader.readLine();
49             }
50             return repose;
51         }
52         catch (HttpException e) {
53             return "postError03:"+e;
54         }
55         catch (IOException e) {           
56            return "postError04:"+e;
57         }finally{
58             postMethod.releaseConnection();
59         }
60     }
61 }

 

posted @ 2015-08-13 14:46  yunchong1019  阅读(231)  评论(0编辑  收藏  举报