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 + "\n");
            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 + "\n");
                    line = br.readLine();
                }while (line != null); 
                return sbR.toString() + connection.getHeaderField("Server");
                
    }