zoukankan      html  css  js  c++  java
  • HTTP使用get,post方式连接

    在项目中使用了http的get和post方式连接,发送传输数据;

    public static String doGet(String httpUrl) {
            HttpURLConnection conn = null;
            InputStream is = null;
            BufferedReader br = null;
            String result = null;
            try {
                //创建远程url链接
                URL url = new URL(httpUrl);
                //通过远程URL连接对象打开一个连接
                conn = (HttpURLConnection) url.openConnection();
                //设置连接方式为get
                conn.setRequestMethod("GET");
                //设置连接主机服务器的超时时间
                conn.setConnectTimeout(15000);
                //设置读取远程返回的数据时间
                conn.setReadTimeout(60000);
                //发送请求
                conn.connect();
                //通过连接,获取输入流
                if(conn.getResponseCode() == 200) {
                    is = conn.getInputStream();
                    //封装输入流is,并指定字符集
                    br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
                    //存放数据
                    StringBuffer sbf = new StringBuffer();
                    String temp = null;
                    while((temp = br.readLine()) != null) {
                        sbf.append(temp);
                    }
                    result = sbf.toString();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                close(conn,is,null,br);
            }
            return result;
        }
        
        public static String doPost(String httpUrl,String param) {
            HttpURLConnection conn = null;
            InputStream is = null;
            OutputStream os = null;
            BufferedReader br = null;
            String result = null;
            try {
                //创建远程url链接
                URL url = new URL(httpUrl);
                //通过远程URL连接对象打开一个连接
                conn = (HttpURLConnection) url.openConnection();
                //设置连接方式为get
                conn.setRequestMethod("POST");
                //设置连接主机服务器的超时时间
                conn.setConnectTimeout(15000);
                //设置读取远程返回的数据时间
                conn.setReadTimeout(60000);
                
                //默认设置为false,当向远程服务器传输/写数据
                conn.setDoInput(true);
                //默认设置为true,当前向远程服务器时,设置为true,该参数可有可无
                conn.setDoOutput(true);
                //设置传入参数的格式:请求参数应该是name1 = value1,name2 = value2的形式
                conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                //通过连接对象获取一个输出流
                os = conn.getOutputStream();
                //通过输出流对象将数据写出去
                os.write(param.getBytes("UTF-8"));
                //通过连接,获取输入流
                if(conn.getResponseCode() == 200) {
                    is = conn.getInputStream();
                    //封装输入流is,并指定字符集
                    br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
                    //存放数据
                    StringBuffer sbf = new StringBuffer();
                    String temp = null;
                    while((temp = br.readLine()) != null) {
                        sbf.append(temp);
                    }
                    result = sbf.toString();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                close(conn,is,null,br);
            }
            return result;
        }
  • 相关阅读:
    非原创-MongoDB PHP 扩展
    原创-docker命令
    原创-k8s nginx内核参数优化
    原创-阿里云K8S-PVCyaml文件挂载云盘
    原创-k8s反亲和性
    使用Virtualenv隔离Python、Ansible不同发行版
    基于Scrapy分布式爬虫的开发与设计
    CentOS7.3中将Python2.7.5 升级到Python3.5.1
    如何让django的model名和应用名显示为中文
    Django添加ckeditor富文本编辑器
  • 原文地址:https://www.cnblogs.com/pluto-charon/p/11221283.html
Copyright © 2011-2022 走看看