java Http请求

Posted 银飞仙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java Http请求相关的知识,希望对你有一定的参考价值。

1. 发送get请求

    /**
     * 发送GET请求
     *
     * @param urlStr        目的地址
     * @param params 请求参数,Map类型。
     * @return 远程响应结果
     */
    public String sendGet(String urlStr, Map<String, String> params) throws Exception {
        //拼接urlStr
        StringBuffer sb = new StringBuffer();
        for(Entry<String, String> entry : params.entrySet()) {
            sb.append("&").append(entry.getKey()).append("=").append(entry.getValue());
        }
        sb.replace(0, 1, "?");
        sb.insert(0, urlStr);
        //创建url对象
        URL url = new URL(sb.toString());
        //创建连接对象,我们要使用http连接 所以强转为Http连接对象
        HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();
        //连接对象设置通用参数
        httpConnection.setRequestProperty("Accept", "*/*");
        httpConnection.setRequestProperty("Connection", "Keep-Alive");
        httpConnection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
        //建立连接
        httpConnection.connect();
        // 获取响应头信息
        Map<String, List<String>> headers = httpConnection.getHeaderFields();
        //获取响应内容
        BufferedReader reader = new BufferedReader(new InputStreamReader(httpConnection.getInputStream(), "UTF-8"));
        sb = new StringBuffer();
        String line = null;
        while((line = reader.readLine()) != null) {
            sb.append(line);
        }
        
        return sb.toString();
    }
    
    

 

2. 发送post请求

    /**
     * 发送POST请求
     *
     * @param urlStr        目的地址
     * @param params 请求参数,Map类型。
     * @return 远程响应结果
     */
    public String sendPost(String urlStr, Map<String, String> params) throws Exception {
        StringBuffer sb = new StringBuffer();
        for(Entry<String, String> entry : params.entrySet()) {
            sb.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
        }
        sb.substring(sb.length() - 1, sb.length());
        System.out.println(sb.toString());

        //创建url对象
        URL url = new URL(urlStr);
        //创建连接对象,我们要使用http连接 所以强转为Http连接对象
        HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();
        //连接对象设置通用参数
        httpConnection.setRequestProperty("Accept", "*/*");
        httpConnection.setRequestProperty("Connection", "Keep-Alive");
        httpConnection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
        // 设置POST方式
        httpConnection.setDoInput(true);
        httpConnection.setDoOutput(true);
        // 获取HttpURLConnection对象对应的输出流
        PrintWriter out = new PrintWriter(httpConnection.getOutputStream());
        // 发送请求参数
        out.write(sb.toString());
        // flush输出流的缓冲
        out.flush();
        
        //获取响应内容
        BufferedReader reader = new BufferedReader(new InputStreamReader(httpConnection.getInputStream(), "UTF-8"));
        sb = new StringBuffer();
        String line = null;
        while((line = reader.readLine()) != null) {
            sb.append(line);
        }
        return sb.toString();
    }

 

以上是关于java Http请求的主要内容,如果未能解决你的问题,请参考以下文章

postman 自动生成 curl 代码片段

postman 自动生成 curl 代码片段

在 Java 的 GraphQL 查询中添加片段

如何对媒体片段的任何部分进行范围请求?

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装