zoukankan      html  css  js  c++  java
  • java 原生http请求

    java原生http请求的实现是依赖 java.net.URLConnection

    post请求的demo

    public class Main {
    
        public static void main(String[] args) {
            postDemo();
        }
    
        /**
         * POST请求
         */
        public static void postDemo() {
            try {
                // 请求的地址
                String spec = "http://localhost:9090/formTest";
                // 根据地址创建URL对象
                URL url = new URL(spec);
                // 根据URL对象打开链接
                HttpURLConnection urlConnection = (HttpURLConnection) url
                        .openConnection();
                // 设置请求方法
                urlConnection.setRequestMethod("POST");
                // 设置请求的超时时间
                urlConnection.setReadTimeout(5000);
                urlConnection.setConnectTimeout(5000);
                // 传递的数据
                String data = "name=" + URLEncoder.encode("aaa", "UTF-8")
                        + "&school=" + URLEncoder.encode("bbbb", "UTF-8");
                // 设置请求的头
                urlConnection.setRequestProperty("Connection", "keep-alive");
                urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                urlConnection.setRequestProperty("Content-Length", String.valueOf(data.getBytes().length));
                // 发送POST请求必须设置允许输出
                urlConnection.setDoOutput(true);
                // 发送POST请求必须设置允许输入
                urlConnection.setDoInput(true);
                //setDoInput的默认值就是true
                //获取输出流,将参数写入
                OutputStream os = urlConnection.getOutputStream();
                os.write(data.getBytes());
                os.flush();
                os.close();
                urlConnection.connect();
                if (urlConnection.getResponseCode() == 200) {
                    // 获取响应的输入流对象
                    InputStream is = urlConnection.getInputStream();
                    // 创建字节输出流对象
                    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
                    // 定义读取的长度
                    int len = 0;
                    // 定义缓冲区
                    byte[] buffer = new byte[1024];
                    // 按照缓冲区的大小,循环读取
                    while ((len = is.read(buffer)) != -1) {
                        // 根据读取的长度写入到os对象中
                        byteArrayOutputStream.write(buffer, 0, len);
                    }
                    // 释放资源
                    is.close();
                    byteArrayOutputStream.close();
                    // 返回字符串
                    String result = new String(byteArrayOutputStream.toByteArray());
                    System.out.println(result);
    
                } else {
                    System.out.println("请求失败");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

      

  • 相关阅读:
    1.xposed框架简介
    Spinner android:entries属性
    nginx 负载均衡时,一台tomcat宕机时的问题 自动切换(转自java版web项目-微信公众号)
    java内存模型(JMM)之happens-before
    java中Infinity(无限)和NaN
    mysql数据库相关操作
    提高mysql数据库查询效率
    转载-----通过xml处理sql语句时对小于号与大于号的处理转换
    JAVA过滤器和springMVC拦截器的区别
    Java中的Filter过滤器
  • 原文地址:https://www.cnblogs.com/vincentren/p/13688085.html
Copyright © 2011-2022 走看看