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;
        }
  • 相关阅读:
    Django【进阶】信号
    Django【进阶】缓存
    exec,eval
    linux下磁盘分区、格式化、挂载
    Django【进阶】中间件
    Django【进阶】权限管理
    Django【进阶】FBV 和 CBV
    MySQL 进阶(待发布)
    Django【进阶】
    django 分页和中间件
  • 原文地址:https://www.cnblogs.com/pluto-charon/p/11221283.html
Copyright © 2011-2022 走看看