123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- package com.caimei.util.helipay;
- import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
- import org.apache.commons.httpclient.HttpClient;
- import org.apache.commons.httpclient.HttpStatus;
- import org.apache.commons.httpclient.NameValuePair;
- import org.apache.commons.httpclient.methods.PostMethod;
- import org.apache.commons.httpclient.params.HttpMethodParams;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import java.io.BufferedReader;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.util.*;
- public class HttpClientService {
- private static final Log LOG = LogFactory.getLog(HttpClientService.class);
- public static Map<String, Object> getHttpResp(Map<String, String> reqMap, String httpUrl) {
- HttpClient client = new HttpClient();
- PostMethod method = new PostMethod(httpUrl);
- method.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
- method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
- method.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, new Integer(300000));
- String response = "";
- Map<String, Object> mp = new HashMap<String, Object>();
- try {
- NameValuePair[] nvps = getNameValuePair(reqMap);
- method.setRequestBody(nvps);
- int rescode = client.executeMethod(method);
- mp.put("statusCode", rescode);
- LOG.info("http rescode:" + rescode);
- if (rescode == HttpStatus.SC_OK) {
- BufferedReader reader = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(), "UTF-8"));
- String curline = "";
- while ((curline = reader.readLine()) != null) {
- response += curline;
- }
- LOG.info("http response:" + response);
- mp.put("response", response);
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- method.releaseConnection();
- }
- return mp;
- }
- /**
- *
- * HTTP协议POST请求方法
- */
- public static String httpMethodPost(String url, String params, String gb) {
- if (null == gb || "".equals(gb)) {
- gb = "UTF-8";
- }
- StringBuffer sb = new StringBuffer();
- URL urls;
- HttpURLConnection uc = null;
- BufferedReader in = null;
- DataOutputStream out = null;
- try {
- urls = new URL(url);
- uc = (HttpURLConnection) urls.openConnection();
- uc.setRequestMethod("POST");
- uc.setDoOutput(true);
- uc.setDoInput(true);
- uc.setUseCaches(false);
- uc.setRequestProperty("Connection", "keep-alive");
- uc.setRequestProperty("Keep-Alive", "timeout=1, max=100");
- uc.setRequestProperty("Content-Length", params.length() + "");
- uc.setRequestProperty("Content-Type","application/json");
- uc.setConnectTimeout(7000);
- uc.setReadTimeout(10000);
- uc.connect();
- out = new DataOutputStream(uc.getOutputStream());
- out.write(params.getBytes(gb));
- out.flush();
- out.close();
- in = new BufferedReader(new InputStreamReader(uc.getInputStream(),
- gb));
- String readLine = "";
- while ((readLine = in.readLine()) != null) {
- sb.append(readLine);
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- if (out != null){
- out.close();
- }
- if (in != null){
- in.close();
- }
- if (uc != null) {
- uc.disconnect();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return sb.toString();
- }
- public static NameValuePair[] getNameValuePair(Map<String, String> bean) {
- List<NameValuePair> x = new ArrayList<NameValuePair>();
- for (Iterator<String> iterator = bean.keySet().iterator(); iterator.hasNext(); ) {
- String type = (String) iterator.next();
- x.add(new NameValuePair(type, String.valueOf(bean.get(type))));
- }
- Object[] y = x.toArray();
- NameValuePair[] n = new NameValuePair[y.length];
- System.arraycopy(y, 0, n, 0, y.length);
- return n;
- }
- }
|