JAVA处理Http请求(GET,POST)

时间:2023-03-09 04:46:13
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"); }