千家信息网

jdk的get和post请求的示例分析

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章给大家介绍jdk的get和post请求的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。post OutputStreamWriter out = n
千家信息网最后更新 2025年02月02日jdk的get和post请求的示例分析

这篇文章给大家介绍jdk的get和post请求的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

post

        OutputStreamWriter out = null;        HttpURLConnection conn = null;        BufferedReader reader = null;        StringBuilder response = new StringBuilder();        URL httpUrl = null;        try{            httpUrl = new URL("http://www.baidu.com");            //建立连接            conn = (HttpURLConnection) httpUrl.openConnection();            conn.setRequestMethod("POST");            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");            conn.setUseCaches(false);//设置不要缓存            conn.setInstanceFollowRedirects(true);            conn.setDoOutput(true);            conn.setDoInput(true);            conn.connect();            out = new OutputStreamWriter(conn.getOutputStream());            out.write(params);            out.flush();            //读取响应            reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));            String lines;            while ((lines = reader.readLine()) != null) {                lines = new String(lines.getBytes(), "utf-8");                response.append(lines);            }            System.out.println(response.toString());        }catch(Exception e){            e.printStackTrace();        }

get

/**     * 发送GET请求     *     * @param url        目的地址     * @param parameters 请求参数,Map类型。     * @return 远程响应结果     */    public static String sendGet(String url, Map parameters) {        StringBuilder result = new StringBuilder();        BufferedReader in = null;// 读取响应输入流        StringBuilder sbParams = new StringBuilder();// 存储参数        String params = "";// 编码之后的参数        try {            // 编码请求参数            for (String name : parameters.keySet()) {                sbParams.append(name).append("=").append(java.net.URLEncoder.encode(parameters.get(name), "UTF-8")).append("&");            }            String requestParam = sbParams.toString();            params = requestParam.substring(0, requestParam.length() - 1);            String fullUrl = url + "?" + params;            logger.info("get请求:" + fullUrl);            // 创建URL对象            URL connURL = new URL(fullUrl);            // 打开URL连接            HttpURLConnection httpConn = (HttpURLConnection) connURL.openConnection();            // 设置通用属性            httpConn.setRequestProperty("Accept", "*/*");            httpConn.setRequestProperty("Connection", "Keep-Alive");            httpConn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");            // 建立实际的连接            httpConn.connect();            // Map> headers = httpConn.getHeaderFields();            // 定义BufferedReader输入流来读取URL的响应,并设置编码方式            in = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), StandardCharsets.UTF_8));            String line;            // 读取返回的内容            while ((line = in.readLine()) != null) {                result.append(line);            }            logger.info("get请求结果:" + result.toString());        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                if (in != null) {                    in.close();                }            } catch (IOException ex) {                ex.printStackTrace();            }        }        return result.toString();    }

关于jdk的get和post请求的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0