Java手动构造发送Http Get、Post请求

先看测试结果

get请求访问https://www.baidu.com/,返回了html页面

在这里插入图片描述

post请求访问某后台接口

在这里插入图片描述

正文

包含以下6种方法
<1> sendGet(String url)

<2> sendGet(String url, String params)

<3> sendGet(String url, Map<String,String> headers, String params)

<4> sendPost(String url)

<5> sendPost(String url, String params)

<6> sendPost(String url, Map<String, String> headers, String params)

package com.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class HttpSender {

    public static void main(String[] args) {
        Map<String, String> headers = new HashMap<>();
        headers.put("token", "succeed");
        headers.put("Content-Type", "application/json");

        String url="https://www.baidu.com/";
        String result = HttpSender.sendGet(url, headers, null);
        System.out.println("result = " + result);
    }


    /**
     *
     * @param url 请求路径(非null)
     * @return 响应体
     */
    public static String sendGet(String url) {
        String result = "";
        BufferedReader in = null;
        try {
            String urlName =url;
            URL realUrl = new URL(urlName);
            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.connect();
            Map<String, List<String>> map = conn.getHeaderFields();
            for (String key : map.keySet()) {
                System.out.println(key + "--->" + map.get(key));
            }

            in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += "\n" + line;
            }
        } catch (Exception e) {
            System.out.println("发送get请求异常" + e);
            e.printStackTrace();
        } finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return result;
    }

    /**
     *
     * @param url 请求路径(非null)
     * @param params 请求体body(可为null)
     * @return 响应体
     */
    public static String sendGet(String url, String params) {
        String result = "";
        BufferedReader in = null;
        try {
            String urlName = url;
            if(params!=null){
                urlName =url + "?" + params;
            }
            URL realUrl = new URL(urlName);
            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.connect();
            Map<String, List<String>> map = conn.getHeaderFields();
            for (String key : map.keySet()) {
                System.out.println(key + "--->" + map.get(key));
            }

            in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += "\n" + line;
            }
        } catch (Exception e) {
            System.out.println("发送get请求异常" + e);
            e.printStackTrace();
        } finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return result;
    }

    /**
     *
     * @param url 请求路径(非null)
     * @param headers 请求头(可为null)
     * @param params 请求体body(可为null)
     * @return 响应体
     */
    public static String sendGet(String url, Map<String,String> headers, String params) {
        String result = "";
        BufferedReader in = null;
        try {
            String urlName = url;
            if(params!=null){
                urlName =url + "?" + params;
            }
            URL realUrl = new URL(urlName);
            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)");
            if(headers!=null) {
                Set<String> keySets = headers.keySet();
                for (String key : keySets) {
                    conn.setRequestProperty(key, headers.get(key));
                }
            }
            conn.connect();
            Map<String, List<String>> map = conn.getHeaderFields();
            for (String key : map.keySet()) {
                System.out.println(key + "--->" + map.get(key));
            }

            in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += "\n" + line;
            }
        } catch (Exception e) {
            System.out.println("发送get请求异常" + e);
            e.printStackTrace();
        } finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return result;
    }

    /**
     *
     * @param url 请求地址(非null)
     * @return 响应体
     */
    public static String sendPost(String url) {
        PrintWriter out = null;
        BufferedReader in = null;

        String result = "";

        try {
            URL readUrl = new URL(url);
            URLConnection conn = readUrl.openConnection();
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("select_nation_id", "KZ");
            conn.setRequestProperty("tiens_token", "appmustsucceed");
            conn.setRequestProperty("Content-Type", "application/json");

            conn.setDoOutput(true);
            conn.setDoInput(true);
            out = new PrintWriter(conn.getOutputStream());

            out.flush();

            in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += "\n" + line;
            }
        } catch (Exception e) {
            System.out.println("发送POST请求异常" + e);
            e.printStackTrace();
        } finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (in != null) {
                    in.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return result;
    }

    /**
     *
     * @param url 请求地址(非null)
     * @param params 请求体body(可为null)
     * @return 响应体
     */
    public static String sendPost(String url, String params) {
        PrintWriter out = null;
        BufferedReader in = null;

        String result = "";

        try {
            URL readUrl = new URL(url);
            URLConnection conn = readUrl.openConnection();
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("select_nation_id", "KZ");
            conn.setRequestProperty("tiens_token", "appmustsucceed");
            conn.setRequestProperty("Content-Type", "application/json");

            conn.setDoOutput(true);
            conn.setDoInput(true);
            out = new PrintWriter(conn.getOutputStream());

            if(params!=null) {
                out.print(params);
            }
            out.flush();

            in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += "\n" + line;
            }
        } catch (Exception e) {
            System.out.println("发送POST请求异常" + e);
            e.printStackTrace();
        } finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (in != null) {
                    in.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return result;
    }

    /**
     *
     * @param url 请求路径(非null)
     * @param headers 请求头(可为null)
     * @param params 请求体body(可为null)
     * @return 响应体
     */
    public static String sendPost(String url, Map<String, String> headers, String params) {
        PrintWriter out = null;
        BufferedReader in = null;
        String result = "";
        try {
            URL readUrl = new URL(url);
            URLConnection conn = readUrl.openConnection();
            conn.setRequestProperty("accept", "*/*");
            if(headers!=null) {
                Set<String> keySets = headers.keySet();
                for (String key : keySets) {
                    conn.setRequestProperty(key, headers.get(key));
                }
            }

            conn.setDoOutput(true);
            conn.setDoInput(true);
            out = new PrintWriter(conn.getOutputStream());

            if(params!=null) {
                out.print(params);
            }
            out.flush();

            in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += "\n" + line;
            }
        } catch (Exception e) {
            System.out.println("发送POST请求异常" + e);
            e.printStackTrace();
        } finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (in != null) {
                    in.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return result;
    }

}


版权声明:本文为weixin_43660088原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。