URLConnection
package com.conan.javase.http_https;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
/**
* Created by Conan on 2016/11/25.
*/
public class HttpRequest {
public static String sendGet(String url, String param) {
StringBuffer sb = new StringBuffer();
BufferedReader bin = null;
try {
String urlNameString = url + "?" + param;
URL realURL = new URL(urlNameString);
URLConnection conn = realURL.openConnection();
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
conn.connect();
//遍历返回的头
Map<String, List<String>> map = conn.getHeaderFields();
for (Map.Entry entry : map.entrySet())
System.out.println(entry.getKey() + " : " + entry.getValue());
bin = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = bin.readLine()) != null)
sb.append(line);
} catch (IOException e) {
System.out.println("发送GET请求出现异常");
// 能处理就处理,不要打印太长的裹脚布错误信息
e.printStackTrace();
} finally {
try {
if (bin != null)
bin.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
public static String sendPost(String url, String param) {
PrintWriter out = null;
BufferedReader bin = null;
StringBuffer sb = new StringBuffer();
try {
URL realURL = new URL(url);
URLConnection conn = realURL.openConnection();
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
//发送POST请求必须要这两行
conn.setDoInput(true);
conn.setDoOutput(true);
//不使用缓存
conn.setUseCaches(false);
out = new PrintWriter(conn.getOutputStream());
out.print(param);
out.flush();
bin = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = bin.readLine()) != null)
sb.append(line);
} catch (IOException e) {
System.out.println("发送POST请求出现异常");
e.printStackTrace();
} finally {
try {
if (out != null)
out.close();
if (bin != null)
bin.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
public static void main(String[] args) {
String s = HttpRequest.sendGet("http://localhost:8080/Catalog/my/get", "name=liu&pass=123");
System.out.println("GET : " + s);
String g = HttpRequest.sendPost("http://localhost:8080/Catalog/my/post", "liufeiqiang");
System.out.println("POST : " + g);
}
}
HttpURLConnection
package com.conan.javase.http_https;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* Created by Conan on 2016/11/25.
*/
public class HttpUrlRequest {
public static String sendGet(String url, String param) {
HttpURLConnection conn = null;
StringBuffer sb = new StringBuffer();
BufferedReader bin = null;
try {
url = url + "?" + param;
URL realUrl = new URL(url);
// HttpURLConnection 专门用来进行处理HTTP请求的
conn = (HttpURLConnection) realUrl.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-type", "application/x-java-serialized-object");
// 防止网络异常情况下超时
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
conn.connect();
bin = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = bin.readLine()) != null)
sb.append(line);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bin != null)
bin.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
public static String sendPost(String url, String param) {
HttpURLConnection conn = null;
StringBuffer sb = new StringBuffer();
BufferedReader bin = null;
PrintWriter pw=null;
try {
url = url + "?" + param;
URL realUrl = new URL(url);
// HttpURLConnection 专门用来进行处理HTTP请求的
conn = (HttpURLConnection) realUrl.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
// 防止网络异常情况下超时
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
conn.connect();
// 发送请求参数
pw=new PrintWriter(conn.getOutputStream());
pw.write(param);
pw.flush();
bin = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = bin.readLine()) != null)
sb.append(line);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bin != null)
bin.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
public static void main(String[] args) {
String s = HttpUrlRequest.sendGet("http://localhost:8080/Catalog/my/get", "name=liu&pass=123");
System.out.println("GET : " + s);
}
}