zoukankan      html  css  js  c++  java
  • 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");
                    
        }
        
  • 相关阅读:
    杂项
    hdu 2094
    hdu acm 1004
    android 重装sdk或者系统的时模拟器出现can open ****
    使用Java模拟操作系统高优先级算法
    各种语法解释及用法
    枚举与结构
    闭包
    socket
    异常
  • 原文地址:https://www.cnblogs.com/NoYone/p/8229163.html
Copyright © 2011-2022 走看看