HttpUtil

来源:互联网 发布:java 标准库数据结构 编辑:程序博客网 时间:2024/06/05 00:16

把项目中的httpUtil记录下来,方便以后查询或使用.

public class MyHttpUtils {private static final int CONNECTION_TIMEOUT = 10000;private static final int READ_TIMEOUT = 10000;private static final Logger logger = LoggerFactory.getLogger(MyHttpUtils .class);public static String post(String reqUrl, String body) throws IOException {URL serverUrl = new URL(reqUrl);HttpURLConnection conn = null;InputStreamReader isr = null;BufferedReader br = null;StringBuffer buffer = new StringBuffer();try {conn = (HttpURLConnection) serverUrl.openConnection();conn.setConnectTimeout(CONNECTION_TIMEOUT);conn.setReadTimeout(READ_TIMEOUT);conn.setRequestMethod("POST");conn.setDoOutput(true);conn.connect();conn.getOutputStream().write(body.getBytes(CharEncoding.UTF_8));isr = new InputStreamReader(conn.getInputStream(), CharEncoding.UTF_8);br = new BufferedReader(isr);for (String line = ""; (line = br.readLine()) != null;) {buffer.append(line);}} finally {if (null != br) {br.close();}if (null != isr) {isr.close();}if (null != conn) {conn.disconnect();}}return buffer.toString();}public static String post(String url, List<NameValuePair> params) throws IOException {return post(url, params, CharEncoding.UTF_8, CharEncoding.UTF_8);}public static String post(String url, List<NameValuePair> params, String writeCharset, String readCharset)throws IOException {DefaultHttpClient httpclient = new DefaultHttpClient();HttpParams httpParams = httpclient.getParams();HttpConnectionParams.setConnectionTimeout(httpParams, CONNECTION_TIMEOUT);HttpConnectionParams.setSoTimeout(httpParams, READ_TIMEOUT);HttpPost httpPost = new HttpPost(url);httpPost.setEntity(new UrlEncodedFormEntity(params, writeCharset));HttpResponse response = httpclient.execute(httpPost);String result = EntityUtils.toString(response.getEntity(), readCharset);return result;}public static List<String> yeePayPost(String strUrl, String content) throws IOException {URL url = new URL(strUrl);HttpURLConnection conn = null;OutputStreamWriter osw = null;BufferedWriter bw = null;InputStreamReader isr = null;BufferedReader br = null;List<String> result = new ArrayList<>();try {conn = (HttpURLConnection) url.openConnection();conn.setDoInput(true);conn.setDoOutput(true);conn.setAllowUserInteraction(false);conn.setUseCaches(false);conn.setRequestMethod("POST");conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=GBK");osw = new OutputStreamWriter(conn.getOutputStream(), CharEncoding.UTF_8);bw = new BufferedWriter(osw);bw.write(content);bw.flush();isr = new InputStreamReader(conn.getInputStream(), CharEncoding.UTF_8);br = new BufferedReader(isr);for (String line = ""; (line = br.readLine()) != null;) {result.add(line);}} finally {if (null != bw) {bw.close();}if (null != osw) {osw.close();}if (null != br) {br.close();}if (null != isr) {isr.close();}if (null != conn) {conn.disconnect();}}return result;}public static String getByHttps(String url) throws IOException {URL reqUrl = new URL(url);HttpsURLConnection conn = null;InputStream inStream = null;InputStreamReader isr = null;BufferedReader br = null;StringBuffer buffer = new StringBuffer(1024);try {conn = (HttpsURLConnection) reqUrl.openConnection();conn.setDoInput(true);conn.setDoOutput(true);conn.setAllowUserInteraction(false);conn.setUseCaches(false);conn.setRequestMethod("GET");inStream = conn.getInputStream();isr = new InputStreamReader(inStream, CharEncoding.UTF_8);br = new BufferedReader(isr);for (String line = ""; (line = br.readLine()) != null;) {buffer.append(line);}} finally {if (null != inStream) {inStream.close();}if (null != br) {br.close();}if (null != isr) {isr.close();}if (null != conn) {conn.disconnect();}}return buffer.toString();}/** * 将Map组装成待签名数据。 待签名的数据必须按照一定的顺序排列 这个是支付宝提供的服务的规范,否则调用支付宝的服务会通不过签名验证 *  * @param params * @return */public static String getSignData(Map<String, String> params) {StringBuffer content = new StringBuffer();// 按照key做排序List<String> keys = new ArrayList<String>(params.keySet());Collections.sort(keys);for (int i = 0; i < keys.size(); i++) {String key = keys.get(i);if ("sign".equals(key) || "sign_type".equals(key)) {continue;}String value = params.get(key);if (value != null) {content.append(i == 0 ? "" : "&").append(key).append("=").append(value);} else {content.append(i == 0 ? "" : "&").append(key).append("=");}}return content.toString();}/** * 将Map中的数据组装成URL *  * @param params * @return * @throws UnsupportedEncodingException */public static String mapToUrl(Map<String, String> params) throws UnsupportedEncodingException {return mapToUrl(params, true, CharEncoding.UTF_8);}/** * 将Map中的数据组装成URL *  * @param params * @return * @throws UnsupportedEncodingException */public static String mapToUrl(Map<String, String> params, boolean urlSafe, String charSet)throws UnsupportedEncodingException {if (null == params || params.keySet().size() == 0) {return ("");}StringBuilder sb = new StringBuilder();boolean isFirst = true;Iterator<Entry<String, String>> paramsItor = params.entrySet().iterator();while (paramsItor.hasNext()) {Entry<String, String> entry = paramsItor.next();String value = entry.getValue();if (isFirst) {sb.append(entry.getKey()).append("=").append(urlSafe ? URLEncoder.encode(value, charSet) : value);isFirst = false;} else {if (value != null) {sb.append("&").append(entry.getKey()).append("=").append(urlSafe ? URLEncoder.encode(value, charSet) : value);} else {sb.append("&").append(entry.getKey()).append("=");}}}return sb.toString();}/** * 取得URL中的参数值。 * <p> * 如不存在,返回空值。 * </p> *  * @param url * @param name * @return */public static String getParameter(String url, String name) {if (name == null || name.equals("")) {return null;}name = name + "=";int start = url.indexOf(name);if (start < 0) {return null;}start += name.length();int end = url.indexOf("&", start);if (end == -1) {end = url.length();}return url.substring(start, end);}public static JSONObject getJSONObject(HttpServletRequest req) throws IOException {return getJSONObject(req, CharEncoding.UTF_8);}public static JSONObject getJSONObject(HttpServletRequest req, String charSet) throws IOException {String content = MyStreamUtil.readText(req.getInputStream(), charSet);logger.debug(content);return (JSONObject) JSONValue.parse(content);}public static String get(String url) throws IOException {URL reqUrl = new URL(url);HttpURLConnection conn = null;InputStream inStream = null;InputStreamReader isr = null;BufferedReader br = null;StringBuffer buffer = new StringBuffer(1024);try {conn = (HttpURLConnection) reqUrl.openConnection();conn.setDoInput(true);conn.setDoOutput(true);conn.setAllowUserInteraction(false);conn.setUseCaches(false);conn.setRequestMethod("GET");inStream = conn.getInputStream();isr = new InputStreamReader(inStream, CharEncoding.UTF_8);br = new BufferedReader(isr);for (String line = ""; (line = br.readLine()) != null;) {buffer.append(line);}} finally {if (null != inStream) {inStream.close();}if (null != br) {br.close();}if (null != isr) {isr.close();}if (null != conn) {conn.disconnect();}}return buffer.toString();}}


0 0