org.apache.commons.httpclient
1 /** 2 * post 方法 3 * @param url 4 * @param params 5 * @return 6 */ 7 public static String post(String url, Object content, String encode) throws Exception { 8 9 byte[] responseBody = null; 10 HttpClient httpclient = new HttpClient(); 11 PostMethod httpPost = new PostMethod(url); 12 // 设置连接超时时间(单位毫秒) 13 httpclient.getHttpConnectionManager().getParams().setConnectionTimeout(60000); 14 // 设置读数据超时时间(单位毫秒) 15 httpclient.getHttpConnectionManager().getParams().setSoTimeout(60000); 16 try { 17 httpPost.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler(3, false)); 18 // servlet 19 if (content instanceof Map) { 20 @SuppressWarnings("unchecked") 21 Map<String, String> map = (Map<String, String>)content; 22 NameValuePair[] param = new NameValuePair[map.size()]; 23 24 int index = 0; 25 for (Map.Entry<String, String> entry : map.entrySet()) { 26 param[index] = new NameValuePair(entry.getKey(),URLEncoder.encode(entry.getValue(), "GBK")); 27 } 28 29 httpPost.setRequestBody(param); 30 } 31 // rest 32 else { 33 httpPost.setRequestEntity(new StringRequestEntity((String)content,"plain/text", encode)); 34 } 35 36 // post 37 int statusCode = httpclient.executeMethod(httpPost); 38 // success 39 if (statusCode == HttpStatus.SC_OK) { 40 responseBody = httpPost.getResponseBody(); 41 } 42 // failure 43 else { 44 45 } 46 } catch (HttpException e) { 47 throw new Exception(e.getMessage()); 48 } catch (IOException e) { 49 throw new Exception(e.getMessage()); 50 } catch (Exception e) { 51 throw new Exception(e.getMessage()); 52 } finally { 53 httpPost.releaseConnection(); 54 } 55 return new String(responseBody, encode); 56 }