100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java Http请求工具类【post/get】

java Http请求工具类【post/get】

时间:2023-12-11 12:29:32

相关推荐

java Http请求工具类【post/get】

包括POST请求,GET请求。以及请求UTF-8编码。

代码如下:

import mons.lang.StringUtils;import mons.logging.Log;import mons.logging.LogFactory;import java.io.*;import .HttpURLConnection;import .URL;import .URLConnection;import .URLEncoder;import java.util.List;import java.util.Map;/*** Created by lsy*/public class HttpUtil {public static final String DEFAULT_CHARSET = "utf-8";public static final Log logger = LogFactory.getLog(HttpUtil.class);public static String doGet(String baseUrl, Map<String, String> paramMap) {StringBuffer queryString = new StringBuffer();for (String param : paramMap.keySet()) {String value = paramMap.get(param);if (StringUtils.isNotBlank(value)) {try {value = URLEncoder.encode(value, DEFAULT_CHARSET);} catch (UnsupportedEncodingException e) {e.printStackTrace();}queryString.append(param).append("=").append(value).append("&");}}return doGet(baseUrl, queryString.toString());}/*** 向指定URL发送GET方法的请求** @param baseUrl 发送请求的URL* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。* @return URL 所代表远程资源的响应结果*/public static String doGet(String baseUrl, String param) {String result = "";BufferedReader in = null;try {String urlNameString =baseUrl;if(param!=null){urlNameString = baseUrl + "?" + param;}logger.info("http请求:" + urlNameString);URL realUrl = new URL(urlNameString);// 打开和URL之间的连接HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();// 设置通用的请求属性connection.setRequestProperty("Content-Type", "text/plain; charset=utf-8");connection.setRequestProperty("Charsert", DEFAULT_CHARSET);connection.setRequestProperty("accept", "*/*");connection.setRequestProperty("connection", "Keep-Alive");connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 建立实际的连接connection.connect();if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {// 获取所有响应头字段Map<String, List<String>> map = connection.getHeaderFields();// 遍历所有的响应头字段for (String key : map.keySet()) {logger.info(key + "--->" + map.get(key));}// 定义 BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}}} catch (Exception e) {logger.info("发送GET请求出现异常!" + e);e.printStackTrace();}// 使用finally块来关闭输入流finally {try {if (in != null) {in.close();}} catch (Exception e2) {e2.printStackTrace();}}return result;}public static String doGet(String baseUrl) {return doGet(baseUrl,"");}/*** 向指定 URL 发送POST方法的请求** @param url 发送请求的 URL* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。* @return 所代表远程资源的响应结果*/public static String doPost(String url, String param) {PrintWriter out = null;BufferedReader in = null;String result = "";try {URL realUrl = new URL(url);// 打开和URL之间的连接URLConnection connection = realUrl.openConnection();// 设置通用的请求属性connection.setRequestProperty("Content-Type", "text/plain; charset=utf-8");connection.setRequestProperty("Charsert", "UTF-8");connection.setRequestProperty("accept", "*/*");connection.setRequestProperty("connection", "Keep-Alive");connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 发送POST请求必须设置如下两行connection.setDoOutput(true);connection.setDoInput(true);// 获取URLConnection对象对应的输出流out = new PrintWriter(connection.getOutputStream());// 发送请求参数out.print(param);// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {logger.info("发送 POST 请求出现异常!" + e);e.printStackTrace();}//使用finally块来关闭输出流、输入流finally {try {if (out != null) {out.close();}if (in != null) {in.close();}} catch (IOException ex) {ex.printStackTrace();}}return result;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。