高性能实时数仓建设(二):java代码模拟http的post请求

package com.zyd.billondataCollect;


import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * 模拟http请求类
 */
public class GenerateData {
    private static void postHttpMethod(String urlPath, String data) {
        try {
            URL url = new URL(urlPath);
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
            //请求方式
            urlConnection.setRequestMethod("POST");
            //支持输入输出
            urlConnection.setDoInput(true);
            urlConnection.setDoOutput(true);
            //是否支持重定向
            urlConnection.setInstanceFollowRedirects(true);
            //使用缓存
            urlConnection.setUseCaches(true);

            //设置请求头信息
            // urlConnection.setRequestProperty("User-Agent","Mozilla/5.0(Windows NT 6.1;Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0");
            urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0(Windows NT 6.1;Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0");
            urlConnection.setRequestProperty("Content-Type", "application/json");
            urlConnection.setConnectTimeout(5 * 1000);

            //连接
            urlConnection.connect();

            //设置输出流,向文件中写入
            OutputStream outputStream = urlConnection.getOutputStream();
            outputStream.write(data.getBytes());
            //刷新缓冲区
            outputStream.flush();

            outputStream.close();
            //输入流
            InputStream inputStream = urlConnection.getInputStream();
            //请求返回状态码
            int httpCode = urlConnection.getResponseCode();
            byte[] inputData = new byte[1024];
            StringBuffer stringBuffer = new StringBuffer();
            while (inputStream.read(inputData, 0, 1024) != -1) {
                stringBuffer.append(new String(inputData));
            }
            System.out.println("状态码:" + httpCode);
            System.out.println("消息:" + stringBuffer.toString());
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        postHttpMethod("http://localhost:8091/testData","====测试====");
    }
}

控制层

    @RequestMapping(value = "testData",method = RequestMethod.POST)
    public String testData(@RequestBody String data){
        System.out.println("测试效果"+data);
        return "success";
    }
发布了483 篇原创文章 · 获赞 62 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/wwwzydcom/article/details/104124088
今日推荐