本文用的是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"); }