HttpUrlConnection是谷歌公司开发推荐的一种编写客户端的开源框架
以GET请求方式在网上下载一张图片
package com.qf.demo5;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* 谷歌官方推荐的 HttpUrlConnection
* @author Administrator
*/
public class Test {
public static void main(String[] args) {
InputStream is = null;
FileOutputStream fos =null;
try {
// 1URL 统一资源定位符
URL url = new URL("http://photocdn.sohu.com/20150610/mp18368185_1433925691994_2.jpg");
// 2
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 3 设定 请求方式
connection.setRequestMethod("GET");
// 4 连接服务器
connection.connect();
// 5 接收响应
// 判断 请求是否成功, 响应的状态 状态码 200 请求响应成功了
// 200 响应成功 404 找不到页面 500 服务器错误
if(connection.getResponseCode()==200){
// 读取
is = connection.getInputStream();
fos = new FileOutputStream(new File("w.jpg"));
byte[] bs = new byte[1024];
int num = 0;
while((num = is.read(bs))!=-1){
fos.write(bs, 0, num);
fos.flush();
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(is!=null){
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
POST请求方式访问服务端
package com.qf.demo5;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
* post 请求
* @author Administrator
*
*/
public class Test3 {
public static void main(String[] args) {
BufferedReader reader = null;
try {
URL url = new URL("http://localhost:8080/Day28_03/LoginServlet");
// 2
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 3
connection.setRequestMethod("POST");
// 是否允许修改 地址 (是否允许在地址中追加 参数)
connection.setDoOutput(true);// false 默认不允许修改
connection.setDoInput(true);// true 默认就是允许读取的
// 4 修改 追加 参数
OutputStream os = connection.getOutputStream();// 从这个流 向 conntion中取添加参数
os.write("useName=zhangasan&pwd=123".getBytes());
os.flush();
// 5 连接(可以写 可以不写 不写 默认帮助执行 连接操作)
//connection.connect();
// 6 读取响应内容
if(connection.getResponseCode()==200){
reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),"utf-8"));
String result = reader.readLine();
System.out.println("服务器回复的数据="+result);
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(reader!=null){
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
网友评论