get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet
public class DemoConnection02 {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
String path = "图片路径";
//1, 得到URL对象
URL url = new URL(path);
//2, 打开连接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//3, 设置提交方式
conn.setRequestMethod("GET");
//4, 获取响应信息
if(conn.getResponseCode() == 200)
{
InputStream is = conn.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while ((len = is.read(buffer))!=-1) {
baos.write(buffer, 0, len);
}
//截取图片名称
String fileName = path.substring(path.lastIndexOf("/")+1);
FileOutputStream fos = new FileOutputStream("d:/"+fileName);
fos.write(baos.toByteArray());
fos.close();
System.out.println("图片下载成功!!!");
}
}
post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。
public static void main(String[] args) throws Exception {
String path = "http://localhost:8080/Day_28_Servlet/LoginServlet";
//1, 得到URL对象
URL url = new URL(path);
//2, 打开连接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//3, 设置提交类型
conn.setRequestMethod("POST");
//4, 设置允许写出数据,默认是不允许 false
conn.setDoOutput(true);
conn.setDoInput(true);//当前的连接可以从服务器读取内容, 默认是true
//5, 获取向服务器写出数据的流
OutputStream os = conn.getOutputStream();
//参数是键值队 , 不以"?"开始
os.write("useName=abc&usePwd=123".getBytes());
os.flush();
//6, 获取响应的数据
if(conn.getResponseCode()==200)
{
//得到服务器写回的响应数据
InputStream is = conn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String str = br.readLine();
System.out.println("响应内容为: " + str);
}
}
博文转自:http://blog.csdn.net/qq_29882585/article/details/52234366