• JAVA处理Http请求(GET,POST)


    本文用的是java.net里面的方法,HttpClient也可以。

    java.net.HttpURLConnection

    java.net.URL

    1. GET

    public static String get(String strUrl, String cookie) throws MalformedURLException,IOException {
            StringBuilder sbR = new StringBuilder();
            
            URL url = new URL(strUrl);
            //专为http特性做的URLconnection
            HttpURLConnection connection = (HttpURLConnection)url.openConnection();
            
            //给服务器发送cookie
            connection.setRequestProperty("cookie", cookie);
            
            BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            
            String line = "";
            boolean first = true;
            do {
                if( first == false)
                    sbR.append(line + "
    ");
                first = false;
                line = br.readLine();
            }while (!line.isEmpty());
            return sbR.toString();
        }

    2.POST

        public static String post(String strUrl, Map<String, String> header, String data) throws IOException {
    
            StringBuilder sbR = new StringBuilder();
            String cookie = null;
            URL url = new URL(strUrl);
            
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoInput(true); //写POST就得写着这两个
            connection.setDoOutput(true);
            connection.setRequestMethod("POST"); //网页默认提交方式为“GET”
            connection.setUseCaches(false);
            
            if (header != null) {
                @SuppressWarnings("rawtypes")
                Iterator itr = header.entrySet().iterator();
                while (itr.hasNext()) {
                    @SuppressWarnings("unchecked")
                    Map.Entry<String, String> entry= (java.util.Map.Entry<String, String>) itr.next();
                    connection.setRequestProperty(entry.getKey(), entry.getValue());
                    if(entry.getKey().equals("Cookie")){
                        cookie = entry.getValue();
                    }
                }
            }
            
            
            OutputStream os = connection.getOutputStream();
            os.write(data.getBytes());
            os.flush();
            os.close();
            
            //取cookie
            //html是作为connection的输入流进来的
            BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                HttpRequest.responseCookie = connection.getRequestProperty("Set-Cookie");
            //取返回的页面
                    String line = "";
                    do{
                        sbR.append(line + "
    ");
                        line = br.readLine();
                    }while (line != null); 
                    return sbR.toString() + connection.getHeaderField("Server");
                    
        }
        
  • 相关阅读:
    后端开发应该掌握的 Redis 基础
    Code Review有什么好处?
    对不起,你那不叫努力,叫重复劳动
    老鸟程序员才知道的40个小技巧
    单例模式基础笔记
    最受IT公司欢迎的50款开源软件
    硬件:关于路由器、交换机、宽带猫的几个问题
    硬件:宽带猫(光猫)的基础知识
    python selenium模块使用出错解决,Message: ‘geckodriver’ executable needs to be in PATH
    python+selenium如何定位页面的元素,的几种定位元素的方法。
  • 原文地址:https://www.cnblogs.com/NoYone/p/8229163.html
Copyright © 2020-2023  润新知