栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

开发撞墙之奇怪的需求:控制层发起http请求

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

开发撞墙之奇怪的需求:控制层发起http请求

今天碰到很傻的任务,好好的拿数据方法不用,非要控制层里再去请求

废话少说,直接上代码

public static List sendPost(String url, String param) {
        PrintWriter out = null;
        BufferedReader in = null;
        List result = new ArrayList<>();
        try {
            URL realUrl = new URL(url);
            // 打开和URL之间的连接
            URLConnection conn = realUrl.openConnection();
            // 设置通用的请求属性(分别为接收路径,连接保持性,请求头)
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("user-agent",
                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 设置输出流与输入流被允许
            conn.setDoOutput(true);
            conn.setDoInput(true);
            // 获取连接输出
            out = new PrintWriter(conn.getOutputStream());
            // 发送参数
            out.print(param);
            // flush缓冲流
            out.flush();
            // 定义BufferedReader输入流来读取URL的返回结果
            in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String str=in.readLine();
            String str1=str.substring(1,str.length()-1);
            String[] split = str1.split(",");
            for(String res : split){
                result.add(res.substring(1,res.length()-1));
            }

        } catch (Exception e) {
            System.out.println("发送 POST 请求出现异常!"+e);
            e.printStackTrace();
        }
        //使用finally块来关闭输出流、输入流
        finally{
            try{
                if(out!=null){
                    out.close();
                }
                if(in!=null){
                    in.close();
                }
            }
            catch(IOException ex){
                ex.printStackTrace();
            }
        }
        return result;
    }

这里我是需要拿到一个字符串列表,注意拿到后读取方式是BufferReader,使用readLine()与read()方法需要注意区别,这里我是直接使用readLine()后直接拼接再装载进入结果但后续数据量过大需要注意数据溢出的情况。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/282555.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号