java原生get和post请求(基于java 1.8)

余生颓废 提交于 2019-12-06 05:49:55
package com.moucong;import com.alibaba.fastjson.JSONObject;import java.io.*;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.text.ParseException;public class get_post {    /**     * Created by chengxia on 2018/12/4.     */        public String doPost(String URL){            OutputStreamWriter out = null;            BufferedReader in = null;            StringBuilder result = new StringBuilder();            HttpURLConnection conn = null;            try{                URL url = new URL(URL);                conn = (HttpURLConnection) url.openConnection();                conn.setRequestMethod("POST");                //发送POST请求必须设置为true                conn.setDoOutput(true);                conn.setDoInput(true);                //设置连接超时时间和读取超时时间                conn.setConnectTimeout(30000);                conn.setReadTimeout(10000);                conn.setRequestProperty("Content-Type", "application/json");                conn.setRequestProperty("Accept", "application/json");                //获取输出流                out = new OutputStreamWriter(conn.getOutputStream());                //向post请求发送json数据                String jsonStr = "{\"touser\":\"\", \"msgtype\":\"text\",  \"text\":{" +                        " \"content\":\"\"}}";                out.write(jsonStr);                out.flush();                out.close();                //取得输入流,并使用Reader读取                if (200 == conn.getResponseCode()){                    in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));                    String line;                    while ((line = in.readLine()) != null){                        result.append(line);                        System.out.println(line);                    }                }else{                    System.out.println("ResponseCode is an error code:" + conn.getResponseCode());                }            }catch (Exception e){                e.printStackTrace();            }finally {                try{                    if(out != null){                        out.close();                    }                    if(in != null){                        in.close();                    }                }catch (IOException ioe){                    ioe.printStackTrace();                }            }            return result.toString();        }        public String doGet(String URL){            HttpURLConnection conn = null;            InputStream is = null;            BufferedReader br = null;            StringBuilder result = new StringBuilder();            try{                //创建远程url连接对象                URL url = new URL(URL);                //通过远程url连接对象打开一个连接,强转成HTTPURLConnection类                conn = (HttpURLConnection) url.openConnection();                conn.setRequestMethod("GET");                //设置连接超时时间和读取超时时间                conn.setConnectTimeout(15000);                conn.setReadTimeout(60000);                conn.setRequestProperty("Accept", "application/json");                //发送请求                conn.connect();                //通过conn取得输入流,并使用Reader读取                if (200 == conn.getResponseCode()){                    is = conn.getInputStream();                    br = new BufferedReader(new InputStreamReader(is, "UTF-8"));                    String line;                    while ((line = br.readLine()) != null){                        result.append(line);//                        System.out.println(line);                    }                    //json类型字符串转为jsonObject//                    System.out.println(result);                    JSONObject jsonObject = JSONObject.parseObject(String.valueOf(result));                    //根据key值获取数据value                    System.out.println(jsonObject.getString("access_token"));  //输出value1                    Writer writer = null;                    StringBuilder outputString = new StringBuilder();                    try {                        outputString.append(jsonObject.getString("access_token") + "\r\n");                        writer = new FileWriter("test.txt"); // true表示追加                        writer.write(outputString.toString());                    } catch (IOException e) {                        e.printStackTrace();                    } finally {                        try {                            writer.close();                        } catch (IOException e2) {                            e2.printStackTrace();                        }                    }                }else{                    System.out.println("ResponseCode is an error code:" + conn.getResponseCode());                }            }catch (MalformedURLException e){                e.printStackTrace();            }catch (IOException e){                e.printStackTrace();            }catch (Exception e){                e.printStackTrace();            }finally {                try{                    if(br != null){                        br.close();                    }                    if(is != null){                        is.close();                    }                }catch (IOException ioe){                    ioe.printStackTrace();                }                conn.disconnect();            }            return result.toString();        }    /** 读取文件数据,存入集合中     * @return*/    public static String readtFile(File file) throws IOException, ParseException {        InputStreamReader read = null;// 考虑到编码格式        try {            read = new InputStreamReader(new FileInputStream(file), "utf-8");        } catch (UnsupportedEncodingException e) {            e.printStackTrace();        } catch (FileNotFoundException e) {            e.printStackTrace();        }        BufferedReader bufferedReader = new BufferedReader(read);        String lineTxt = null;        StringBuffer buffer = new StringBuffer();        String line = " ";        while ((line = bufferedReader.readLine()) != null) {//            System.out.println(lineTxt);            buffer.append(line);        }        read.close();        return buffer.toString();    }   public static void main(String[] args) throws Exception {             get_post http = new get_post();//            System.out.println("Testing 1 - Do Http GET request");       //获取token的get方法//            http.doGet("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=&secret=");            System.out.println("\nTesting 2 - Do Http POST request");            File file = new File("test.txt");            String token = readtFile(file);            System.out.println(token);            http.doPost("https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token="+token);        }    }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!